Как выбрать диапазон в iframe с «Start» и «End» в Firefox как «selectionStart» из элемента input - PullRequest
2 голосов
/ 05 марта 2010

для Internet Explorer, у меня есть текущий код для выбора диапазона в iframe с включенным параметром desingMode:

    var Range = window.document.selection.createRange();
    var obj = { start: <b>3</b>, end : <b>6</b>}
    Range.collapse( true );
    Range.moveStart( 'character', obj.start );
    Range.moveEnd( 'character', obj.end - obj.start );
    Range.select();

Наиболее полезно, если я хочу выбрать только один фрагмент строки, используя только 2 параметра. Начало и конец (для элементов ввода существуют свойства selectionStart и selectionEnd).

Когда этот код выполняется, например, в строке «Hello World», он выделяет только фрагмент строки llo Wo или что-то в этом роде.
Проблема заключается в том, что Firefox Dom не поддерживает метод moveStart или moveEnd, а только range.setStart и range.setEnd, которые запрашивают только узел и смещение в качестве аргументов.

Так можно ли виртуализировать методы moveStart и moveEnd в Firefox? Спасибо.

1 Ответ

1 голос
/ 19 мая 2010

Это работает для меня:

var iframeElement = ...; // the DOM element for the iframe;

var contentDoc = iframeElement.contentDocument;
var range = contentDoc.createRange();
range.setStart(contentDoc.body.firstChild, 3);
range.setEnd(contentDoc.body.firstChild, 6);
var selection = iframeElement.contentWindow.getSelection();
selection.removeAllRanges();
selection.addRange(range);

Вам нужно вызвать removeAllRanges () в Firefox, иначе вы можете выбрать несколько вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...