Свойства и методы объекта TextRange
В этом разделе статьи мы рассмотрим свойства и методы объекта TextRange. Они
предоставляют возможность изменения текста и элементов страницы. Для
демонстраций мы будем использовать пример из предыдущего раздела. Напомним его:
<HTML>
<HEAD>
<TITLE>Sample Page</TITLE>
</HEAD>
<BODY>
<H1>This is a sample page.</H1>
<P>This is some sample text.</P>
</BODY>
</HTML>
Мы будем ссылаться на объект TextRange, отображающий содержимое документа -
который будет возвращен следующим методом.
var range = document.body.createTextRange
Вот сокращенный список свойств объекта TextRange
Свойство | Описание |
htmlText | Возвращает HTML фрагмент для выделенной текстовой области.
Свойство доступно только для чтения.
<H1>This is a sample page.</H1>
<P>This is some sample text.</P>
| text |
Задает или возвращает текст содержащийся в диапазоне (range).
Это свойства доступно как для чтения, так и для записи, это
означает, что вы можете изменять текущее значение, также как
получать его. |
boundingWidth |
Возвращает ширину прямоугольника, который ограничивает
текстовую область.
305
|
boundingHeight |
Возвращает высоту прямоугольника, который ограничивает
текстовую область
74
|
boundingLeft |
Возвращает левую координату прямоугольника, который ограничивает
текстовую область.
12
|
boundingTop |
Возвращает верхнюю координату прямоугольника, который ограничивает
текстовую область.
17
|
offsetLeft |
Возвращает левую координату прямоугольника, который ограничивает
текстовую область.
12
Это свойство - не тоже самое, что и boundingLeft. Например,
если вы поместите участок кода в следующее определение:
<DIV STYLE="position: absolute; left: 200">...</DIV>
то свойство будет равно 212. |
offsetTop |
Возвращает верхнюю координату прямоугольника, который ограничивает
текстовую область.
17
Это свойство - не тоже самое, что и boundingTop. Например,
если вы поместите участок кода в следующее определение:
<DIV STYLE="position: absolute; top: 200">...</DIV>
то свойство будет равно 217. |
Помимо того, объект TextRange имеет много методов. Вот - список наиболее
полезных из них:
Метод | Описание |
collapse([start]) | Перемещает точки вставки к началу (по умолчанию) или концу
текущей текстовой области (если аргумент задан как false)
|
expand(unit) | Расширяет область таким образом, чтобы частичные элементы
стали содержаться целиком. Метод возвращает true, если
расширение прошло успешно, и false иначе. Unit может принимать
одно из следующих строковых значений.
"character"
Расширяет символ.
"word"
Расширяет слово. Слово - это группа символов, ограниченных пробелом или разделительным символом.
"sentence"
Расширяет предложение. Предложение - это совокупность слов, ограниченных символом пунктуации, таким как точка.
"textedit"
Расширяет до целого объекта. Другими словами, область до ее оригинальных размеров.
Этот пример скрипта создает объект TextRange для текущего
выделения, и гарантирует то, что любое, частично выделенное
слово будет целиком помещено в объект.
var range = document.selection.createRange();
range.expand("word");
|
duplicate() | Возвращает копию родительской текстовой области (метод которой вызывается)
|
parentElement() | Возвращает родительский элемент для текстовой области. Родительский
элемент - это минимальный элемент, заключающий в себя текстовую
область.
|
inRange(otherRange) | Возвращает логическое значение, указывающее что хотя бы
одна область (аргумент) содержится в другой (объект)
|
isEqual(otherRange) | Возвращает логическое значение, указывающее что хотя бы
одна область (аргумент) равна другой (объект)
|
scrollIntoView ([start]) | Заставляет объект прокручиваться к видимой части окна, выравнивая
по его верхней или нижней части. Если start содержит значение
false, то нижняя часть объекта будет видна в нижней части окна.
Иначе, по умолчанию, объект прокрутится к верхней части окна.
|
setEndPoint (type, range) | Согласовывает конечную точку (endpoint) одной области с конечной
точкой (endpoint) другой. Строковой аргумент type задает,
какая конечная точка (endpoint) будет перемещена, и какая
конечная точка родительской области должна ее заменить.
Она поддерживает любой из следующих значений: "StartToEnd",
"StartToStart", "EndToStart", или "EndToEnd". Второй аргумент,
range - область их которой берется исходная конечная точка
(endpoint).
|
compareEndPoints (type, range) | Определяет, есть ли у родительской области (метод которой
вызывается) и у области заданной в качестве аргумента (range)
общие конечный точки (endpoint). Этот метод возвращает
-1 (если меньше), 0 (если равны), 1 если больше. Аргумент
type должен быть одним из: StartToEnd", "StartToStart",
"EndToStart", или "EndToEnd". Как вы видите, он описывает
сравнение конечных точек (endpoint). Обратите внимание на то,
что термин "конечная точка" (endpoint) не обязательно указывает
на последнюю позицию в текстовой области. Это может быть
либо первая, либо последняя, в зависимости от того, какое
значение имеет аргумент type.
|
select() | Делает выделение на странице, эквивалентное текстовой области
|
В предшествующей таблице приведен список самых важных основных методов объекта
TextRange. А в следующей таблице приведен список методов перемещения. После
выделения текстовой области вы можете перемещать ее стартовую и конечную точку, с
помощью этих методов. Заметьте, что они не перемещают текст на странице. Они просто
перемещают границы диапазона, тем самым влияя на выделенную текстовую область.
Вот перечисление этих методов:
Метод | Описание |
move (unit [, count]) | Изменяет стартовую или конечную точку текстовой области, для
для перекрытия некоторого текста. Это метод перемещает текстовую
область, не сам текст. Следующий аргумент может содержать одну
из следующих строк:
"character"
Перемещает один или более символов.
"word"
Перемещает одно или более слов. Слово - это группа символов,
ограниченных пробелом или разделительным символом.
"sentence"
Перемещает одно или более предложений. предложение - это
совокупность слов, ограниченных символом пунктуации,
таким как точка.
"textedit"
Перемещает к началу и конку оригинальной текстовой
области.
Второй аргумент, count - задает количество элементов для
перемещения (положительное, или отрицательное). По умолчанию
это 1. Метод возвращает реальное число перемещенных элементов.
|
moveStart (unit [, count]) | Тоже самое, что и move(), только перемещает только стартовую
точку. Он изменяет диапазон области перемещая ее стартовую
точку.
|
moveEnd (unit [, count]) | Тоже самое, что и move(), только перемещает только конечную
точку. Он изменяет диапазон области перемещая ее конечную точку.
|
pasteHTML (htmlText) | Вставляет указанный HTML текст, в данную область. Текст целиком
заменяет предыдущий текст и HTML элементы, находящиеся в
области. Метод не может быть использован, пока документ
загружается. Кроме того, обратите внимание на то, чтобы
вставляемый текст и HTML элементы были пригодны для заданной
области. Например, попытка вставить ячейку таблицы в текстовую
область, не содержащей таблицы, может заставить метод вставить
элемент TABLE.
|
Помните, что текстовые области не поддерживаются в Макинтошовских версиях Inernet
Explorer 4.0x. Эти методы и свойства актуальны только в Win32 версиях Internet
Explorer 4.0x. На этой странице рассмотрены только основы текстовых областей,
так как статья о выделениях, а не о текстовых областях. В следующем
разделе этой статьи мы рассмотрим меж-браузерную работы с выделениями.
Назад |
Оглавление |
Далее
|