我在为我的JavaScript重写document
对象时遇到了一点麻烦。
function myFunction(document) {
[code]
}
工作好。但
function myFunction(newDocument) {
document=newDocument
[code]
}
没有。到目前为止,我用前一种方法很好地管理了函数,但我宁愿只重写一次文档对象并忘记它。如果有人能告诉我全局覆盖文档对象的正确方法,我将不胜感激。
我要大胆地说,这是不可能做到的,也不应该做到的。
如果您替换当前的document
对象(您的script
正在运行),那么您的脚本不会超出范围/上下文吗?
我做了一个小提琴(http://jsfiddle.net/V3Rsh/),表明这不能做(至少在Firefox 20中)。如果您查看控制台,它会在document
分配之前和之后报告相同的URL。但是,如果您调试并在第一个console.log()
上设置一个断点,并在控制台手动运行document = newDocument()行,您将看到创建了一个具有"about:blank"URL的document
对象。但是随后对console.log()
的调用并没有反映这一点。