Каковы различные способы создания элементов - PullRequest
5 голосов
/ 20 января 2012

Скажите, что я хочу перезаписать form.elements на всех формах (текущих и будущих).

Мотивация

Этот вопрос о полизаполнении RadioNodeList может быть решен путем перехвата всех элементов form и ручной записи собственного метода получения для свойства elements.

Как мне перехватить?

Помимо приведенного ниже, какие существуют другие способы создания (формирования) элементов, которые мне нужно перехватить

  • document.createElement
  • document.createElementNS
  • Node.importNode
  • Node.cloneNode
  • DOMImplementation.createDocument (может быть, зависит от того, насколько эффективна перезапись Document.prototype.createElement / NS)

Каковы другие недостатки?

Отдельный вопрос, игнорируя потери производительности, какие есть веские причины не перехватывать создание узла?

1 Ответ

0 голосов
/ 20 января 2012

Перехват элементов формы может быть выполнен с помощью функции, которая анализирует узлы по имени тега в поиске формы, если конкретное событие или атрибут не установлены так, как вы, чем вы должны были бы установить, иначе это уже перехваченныйформа.

Второй альтернативой является переопределение createElement на Element и на document для новых элементов, которые должны быть проанализированы вышеупомянутой функцией.

Плохая частьчто для более старых версий IE вам придется написать отдельный файл HTC, чтобы настроить поведение элемента по вашему желанию.

Надеюсь, это поможет, даже если в нем много информации и нет кода (это довольно неприятно)код).

РЕДАКТИРОВАТЬ:

Другими словами, вы можете создать переопределенный класс DOM для кросс-браузерного использования (или, по крайней мере, это то, что я делаю последние 4 месяца), гдеВы принимаете все особые формы поведения и относитесь к ним по особым причинам.

...