selection NN 6  IE 4   DOM n/a

Небольшой список свойств и методов объекта выделения в некотором роде может ввести в заблуждение. Элементы, названые в этом списке,- это средства объекта selection, представленного в IE4+. В NN6 также используется объект selection, который не является частью W3C DОМ, поэтому в первых модификациях этого броузера не было предусмотрено создание подобного вида объектов. Далее рассматриваются основные способы управления объектом selection в NN6 независимо от того, когда он был впервые реализован. Но мы не будем детально рассматривать все свойства и методы этого объекта,

Версия IE

В броузере IЕ4+ объект selection представляет собой свойство объекта document, которое обеспечивает доступ сценария к любому тексту документа или средствам управления текстом, используемым сценарием или посетителями. Объект selection, состоящий из одного или более символов, всегда выделяется на странице; более того, только один объект selection может быть активным в текущее врсмя. Когда на странице посетителю дается указание выделить текст для выполнения определенного действия с ним, можно (и нужно) воспользоваться преимуществами, предоставляемыми объектом selection. Наиболее удобный случай применения объекта selection - с точки зрения обработки - это события onMouseUp. Это событие срабатывает после каждого отпускания кнопки мыши, при этом сценарий может анализировать объект document.selection на включение в него выделяемого текста (с помощью свойства type), С помощью метода createRange() можно преобразовать объект selection в объект TextRange. Затем для получения доступа к только что выделенному тексту области нужно воспользоваться свойством text. Такая последовательность действий может показаться достаточно сложной перед следующим шагом, однако объект selection (в броузере IE) не предоставляет возможности напрямую считывать или изменять выделенный текст. Если вы собираетесь выполнить действие с выделением, то, возможно, у вас не будет возможности сделать это сразу, щелкнув на кнопке или ссылке. В некоторых версиях броузеров и операционных систем щелчок на одном из элементов страницы автоматически приводит к отмене выделения текущего элемента или текста.

Версия NN

В броузере Navigator 4 с помощью метода document.getSelection() можно просматривать выделенный текст тела страницы, однако по сути, для этого броузера объекта selection не существует. Только в броузере NN6 сделана попытка исправить эту ситуацию. Метод document.getSelection() позволяет использовать броузер NN6 для косвенного получения копии выделения, подобной представляемой в IЕ (как описано выше): сначала создается область для выделения, а затем в эту область помещается необходимый текст.
Для отображения результатов текущего выделения, представленного объектом Selection, пользуйтесь методом window.getSelection() (как только он станет доступным в броузере NN6), Следует отметить, что отличие в выделениях броузеров IE и NN заключается в том, что объект selection в NN6 представляет текст только тела страницы, а не выделение внутри текстовых элементов управления. В броузере NN6 объект selection имеет представлен в дереве узла документа, при этом происходит определение начальной и конечной точек выделения. Когда посетитель медленно перемещает указатель мыши вдоль текста, узел, в котором начинается выделение, получаст статус анкерного, а узел, содержащий конечную точку выделения,- активного. Для выделения, проводимого двойным или тройным щелчком, направление между анкерным и активным узлами задается принимаемой по умолчанию системой письма (например, слева направо в русском языке). В большинстве случаев в броузере NN6 объект selection представляется так же, как и объект Range в модели W3C DOM, содержащий методы сжатия и расширения выделения. Однако в отличие от области, текст, сжимаемый с помощью объекта selection, выделяется на странице. Если ваши сценарии должны управлять узлами внутри выделения, то используйте метод getRangeAt() объекта selection, который возвращает объект Range, граничные точки которого совпадают с граничными точками выделения.

 
 
Объектно-ориентированная модель
NN 6 window.getSelection()
IE document.selection

Свойства:


type NN n/a  IE 4   DOM n/a
 Только чтение
 

Свойство type возвращает элемент Техt но только во время существования выделения на странице. В противном случае свойство возвращает значение none. Сценарий использует эту информацию дня определения существования выделения на странице:

if (document.selection.type == "Text") {
// процедура выделения
}

Компания Microsoft в своей документации обращает внимание на то, что это свойство иногда возвращает значение Control, однако рассмотрение этого связанного с режимом редактирования значения выходит за рамки данного справочника.

 
Пример:

if (document.selection.type == "Text") { ... }

 
Возвращаемое значение:
1из двух постоянных значений (как строка): none | Text.
 
Значение по умолчанию: none

Методы:


clear( ) NN n/a  IE 4   DOM n/a

Удаляет содержание текущего выбора в документе. Для посетителя метод clear() выполняет такое же действие, как присвоение свойству TextRange.text пустой строки. Отличие между этими вышеупомянутыми способами заключается в том, что метод clear() можно использовать, не создавая текстовую область для выделения. После удаления выделения свойством selection.type возвращается значение None

Например, обработчик события в следующем тэге удаляет любой выбранный текст элемента P через две секунды после выбора:

<P onSelectStart="setTimeout('document.selection.clear( )',2000)">

 
Возвращаемое значение
None.
 
Параметры
None.

createRange( ) NN n/a  IE 4   DOM n/a

Чтобы создать текстовую область для пользовательского выделения в броузере IE, следует применять метод createRange() объекта selection, Я точно не знаю, почему метод для объекта selection называется createRange(), в то время как текстовые области для других действительных объектов создаются с помощью метода createTextRange(). Результатом работы обоих методов является окончательно обработанный объект TextRange.

После следующей инструкции:

var myRange = document.selection.createRange( )

сценарий сможет воздействовать на содержание выбранного текста.

 
Возвращаемое значение
ОбъектTextRange.
 
Параметры
None.

empty( ) NN n/a  IE 4   DOM n/a

Метод empty() предназначен для отмены текущего выделения в броузере IE. После процесса снятия выделения свойство selection.type возвращает значение None. Метод empty() работает так же, как и unSelect, запускаемый с помощью метода execCommand() для документа. Если выделение создается на основе объекта TextRange с помощью метода TextRange.select(), то метод empty() применяется только для видимого выделения, и не влияет на текстовую область. Метод не изменяет содержания выделенной области.

 
Возвращаемое значение
None.
 
Параметры
None.


HIVE: All information for read only. Please respect copyright!
Hosted by hive КГБ: Киевская городская библиотека