[Seaside] Textarea and setSelectionRange()

Lukas Renggli renggli at gmail.com
Sat Mar 14 16:25:19 UTC 2009


> Has anyone here managed to call the setSelectionRange() method against a
> textarea in Seaside?  I cannot seem to get this working.

Text selection is handled different in IE.

There is JavaScript code in the Pier-EditorEnh plugin at
<http://source.lukas-renggli.ch/pieraddons> that retrieves and sets
the text selection. As far as I know this code works in all web
browsers:

function getSelection(element) {
	if (document.selection && document.selection.createRange) {
		var range = document.selection.createRange();
		var stored = range.duplicate();
		stored.moveToElementText(element);
		stored.setEndPoint("EndToEnd", range);
		element.selectionStart = stored.text.length - range.text.length;
		element.selectionEnd = element.selectionStart + range.text.length;
	}
	return [element.selectionStart, element.selectionEnd];
}

function setSelection(element, range) {
	element.focus();
	element.selectionStart = range[0];
	element.selectionEnd = range[1];
	if (document.selection && document.selection.createRange) {
		var range = document.selection.createRange();
	 	range.moveStart("character", element.selectionStart);
	    	range.moveEnd("character", element.selectionEnd - element.selectionStart);
		range.select();
	}
}

Cheers,
Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch


More information about the seaside mailing list