--- title: Range.surroundContents() slug: Web/API/Range/surroundContents translation_of: Web/API/Range/surroundContents ---
Метод Range.surroundContents()
перемещает содержимое {{ domxref("Range") }} в новый элемент, который расположится в начале указанного диапазона.
Этот метод приблизительно эквивалентен коду newNode.appendChild(range.extractContents()); range.insertNode(newNode)
. После его работы крайние точки диапазона будут включать в себя newNode
.
Если {{ domxref("Range") }} разделяет любой не текстовый элемент хотя бы одной точкой, произойдет исключение. В отличие от альтернативы выше, если в диапазоне есть частично выделенные элементы, они не будут клонированы, а вместо этого производит ошибка.
range.surroundContents(newNode);
var range = document.createRange(); var newNode = document.createElement("p"); range.selectNode(document.getElementsByTagName("div").item(0)); range.surroundContents(newNode);
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('DOM WHATWG', '#dom-range-surroundcontents', 'Range.surroundContents()')}} | {{Spec2('DOM WHATWG')}} | Без изменений. |
{{SpecName('DOM2 Traversal_Range', 'ranges.html#Level2-Range-method-surroundContents', 'Range.surroundContents()')}} | {{Spec2('DOM2 Traversal_Range')}} | Начальная спецификация. |
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.0")}} [1] | 9.0 | 9.0 | {{CompatVersionUnknown}} |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.0")}} [1] | 9.0 | 9.0 | {{CompatVersionUnknown}} |
[1] Firefox до версии 1.5, содержит ошибку, которая не позволяет отработать Range.surroundContents
если начало и конец диапазона являются одним текстовым элементом ({{bug(135928)}}).