Range.surroundContents()

Метод 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()' в этой спецификации.
Устаревшая Начальная спецификация.

Совместимость

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)

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).

Смотрите также