说我想在所有表格(当前和未来)上覆盖form.elements
。
This question on polyfilling RadioNodeList
可以通过截取所有form
元素并手动为其上的elements
属性编写自己的getter来解决。
除了下面我还需要创建(形式)元素的其他方法,我需要拦截
document.createElement
document.createElementNS
Node.importNode
Node.cloneNode
DOMImplementation.createDocument
(也许,取决于覆盖Document.prototype.createElement
/ NS
的有效程度)单独的问题,忽略性能会有什么好的理由来阻止节点的创建?
答案 0 :(得分:0)
表单元素的截取可以通过一个函数来完成,该函数通过标记名称搜索表单来解析节点,如果没有设置特定事件或属性,那么你必须设置它,否则它已被截获形成。
第二种方法是覆盖createElement
和Element
上的document
,以便新元素由上述函数解析。
不好的部分是,对于较旧的IE版本,您必须编写一个单独的HTC文件,以便按照您的意愿制作Element的行为。
希望这有帮助,即使它是很多信息而且没有代码(这是一个非常讨厌的代码)。
编辑:
换句话说,你可以为跨浏览器使用创建一个重写的DOM类(或者至少这是我在4个月内所做的事情),你可以采取所有特殊行为并出于特殊原因对待它们。 / p>