如何创建一个继承自Document的类

时间:2014-08-22 13:00:37

标签: javascript dom inheritance

我想创建一个名为NMLDocument的类,它继承自Document但具有一些其他属性。

我已尝试过此代码:

NMLDocument.prototype = Object.create(Document.prototype);

但浏览器会抛出以下错误:

Ignoring get or set of property that has [LenientThis] because the "this" object is incorrect.

有什么办法吗? (我不想单独包括所有属性)

1 个答案:

答案 0 :(得分:0)

您尝试实现的可能是不可能的,因为像Document这样的内部类型不必像普通的JS对象一样(通常,Document因安全原因而不会这样做。)< / p>

如果您想模拟浏览器,可以试试envjs这是一个非常完整的纯JavaScript浏览器实现。

如果您需要真正的浏览器,请尝试phantomjs。这是一个基于WebKit的浏览器,由JavaScript或CoffeeScript控制。它在控制端提供了许多不错的API(比如用于资源加载的监听器)。

如果您想使用XULRunner,请尝试编写包装器或覆盖Document的特定部分。