2012-04-20 2 views
1

Интересно, не работает ли обычная setSelectionRange текстовое поле в новых летах Firefox. На сайте MDN (Mozilla Developer Center) было указано:XUL textbox setSelectionRange

setSelectionRange (начало, конец) Тип Возврата: нет возвращаемого значения Устанавливает выбранную часть текстового поля, где начало аргумент является индексом из первый символ для выбора, а конечный аргумент - индекс символа после выбора. Установите оба аргумента в то же значение, чтобы переместить курсор в соответствующую позицию без выделения текста.

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 
<window id="yourwindow" 
     xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
     xmlns:html="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://www.w3.org/1999/xhtml"> 

<button label="x" oncommand="sel()" /> 

<textbox id="id" multiline="true" 
     value="This is some text that could wrap onto multiple lines."/> 

<script type="text/javascript"> 
<![CDATA[ 
function sel(){ 
var textbox = document.getElementById("id"); 
textbox.setSelectionRange(1 , 2); 
} 
]]> 
</script> 
</window> 
+1

https://developer.mozilla.org/en/XUL_Tutorial/Focus_and_Selection – linguini

ответ

1

Функция работает просто отлично. Однако, когда вы нажимаете кнопку, фокус ввода (логически) на кнопке и setSelectionRange не изменит этого. Вы можете нажать Tab, чтобы выбрать текстовое поле и сделать выделение видимым. Кроме того, вы можете также добавить эту строку в sel() функцию, чтобы сосредоточиться на текстовое поле:

textbox.focus(); 
+0

Спасибо, работали, как я хотел. – user916933

+0

@ user916933: Не стесняйтесь принимать ответ, если он сработал: http://stackoverflow.com/faq#howtoask –

+0

можно будет выбрать несколько частей предложения? – user916933

Смежные вопросы