Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

// Если свойство outerHTML уже имеется - просто вернуть управление

if (document.createElement("div").outerHTML) return;

// Возвращает окружающую разметку с содержимым элемента,

// на который указывает ссылка this

function outerHTMLGetter {

var container = document.createElement("div");
// Фиктивный элемент

container.appendChild(this.cloneNode(true)); // Копировать this

// в фиктивный элемент

return container.innerHTML; // Вернуть содержимое

// фиктивного элемента

}

// Замещает указанным значением value содержимое элемента, на который

// указывает ссылка this, вместе с окружающей разметкой HTML

function outerHTMLSetter(value) {

// Создать фиктивный элемент и сохранить в нем указанное значение

var container = document.createElement("div");

container.innerHTML = value;

// Переместить все узлы из фиктивного элемента в документ

while(container.firstChild) // Продолжать, пока в контейнере

// не останется дочерних элементов

this.parentNode.insertBefore(container.firstChild, this);

// И удалить замещаемый узел

this.parentNode.removeChild(this);

}

// Использовать эти две функции в качестве методов чтения и записи свойства outerHTML

// всех объектов Element. Использовать метод Object.defineProperty, если имеется,

// в противном случае использовать __defineGetter__ и __defineSetter__.

if (Object.defineProperty) {

Object.defineProperty(Element.prototype,

"outerHTML",

{ get: outerHTMLGetter,

set: outerHTMLSetter,

enumerable: false,

configurable: true

}):

}

else {

Element.prototype.__defineGetter__("outerHTML", outerHTMLGetter);

Element.prototype.__defineSetter__("outerHTML", outerHTMLSetter);

}

});

15.6.4. Использование объектов DocumentFragment

Объекты

DocumentFragment
– это особая разновидность объектов
Node
; они служат временным контейнером для других узлов. Создаются объекты
DocumentFragment
следующим образом:

var frag = document.createDocumentFragment;

Как и узел

Document
, объекты
DocumentFragment
являются самостоятельными и не входят в состав какого-либо другого документа. Его свойство
parentNode
всегда возвращает значение null. Однако, как и узлы
Element
, объекты
DocumentFragment
могут иметь любое количество дочерних элементов, которыми можно управлять с помощью методов
appendChild, insertBefore
и т. д.

  • Читать дальше
  • 1
  • ...
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: