Эта статья нуждается в редакционном обзоре. Как вы можете помочь.
Метод Range.surroundContents()
перемещает содержимое Range
в новый элемент, который расположится в начале указанного диапазона.
Этот медод приблизительно эквивалентен коду newNode.appendChild(range.extractContents()); range.insertNode(newNode)
. После его работы крайние точки диапазона будут включать в себя newNode
.
Если Range
разделяет любой не текстовый элемент хотя бы одной точкой, произойдет исключение. В отличие от альтернативы выше, если в диапазоне есть частично выделенные элементы, они не будут клонированы, а вместо этого произовдет ошибка.
Синтаксис
range.surroundContents(newNode);
Параметры
- newNode
- Элемент который будет содержать в себе выделенный текст.
Пример
var range = document.createRange(); var newNode = document.createElement("p"); range.selectNode(document.getElementsByTagName("div").item(0)); range.surroundContents(newNode);
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
DOM Определение 'Range.surroundContents()' в этой спецификации. |
Живой стандарт | Без изменений. |
Document Object Model (DOM) Level 2 Traversal and Range Specification Определение 'Range.surroundContents()' в этой спецификации. |
Рекомендация | Начальная спецификация. |
Совместимость
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Да) | 1.0 (1.7 или ранее) [1] | 9.0 | 9.0 | (Да) |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | (Да) | 1.0 (1.0) [1] | 9.0 | 9.0 | (Да) |
[1] Firefox до версии 1.5, содержит ошибку, которая не позволяет отработать Range.surroundContents
если начало и конец диапазона являются одним текстовым элементом (ошибка 135928).