Свойства и методы объекта 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. На этой странице рассмотрены только основы текстовых областей, так как статья о выделениях, а не о текстовых областях. В следующем разделе этой статьи мы рассмотрим меж-браузерную работы с выделениями.
Оставить комментарий
Комментарии
Я искал это уже давно, наконец-то!