创建元素的不同方法有哪些

时间:2012-01-20 13:31:08

标签: javascript dom element

说我想在所有表格(当前和未来)上覆盖form.elements

动机

This question on polyfilling RadioNodeList可以通过截取所有form元素并手动为其上的elements属性编写自己的getter来解决。

我如何拦截?

除了下面我还需要创建(形式)元素的其他方法,我需要拦截

  • document.createElement
  • document.createElementNS
  • Node.importNode
  • Node.cloneNode
  • DOMImplementation.createDocument(也许,取决于覆盖Document.prototype.createElement / NS的有效程度)

还有哪些缺点?

单独的问题,忽略性能会有什么好的理由来阻止节点的创建?

1 个答案:

答案 0 :(得分:0)

表单元素的截取可以通过一个函数来完成,该函数通过标记名称搜索表单来解析节点,如果没有设置特定事件或属性,那么你必须设置它,否则它已被截获形成。

第二种方法是覆盖createElementElement上的document,以便新元素由上述函数解析。

不好的部分是,对于较旧的IE版本,您必须编写一个单独的HTC文件,以便按照您的意愿制作Element的行为。

希望这有帮助,即使它是很多信息而且没有代码(这是一个非常讨厌的代码)。

编辑:

换句话说,你可以为跨浏览器使用创建一个重写的DOM类(或者至少这是我在4个月内所做的事情),你可以采取所有特殊行为并出于特殊原因对待它们。 / p>