javascript – document.open / document.write没有正确清除chrome中的文档 – 这是chrome中的错误吗?
作者:互联网
我通过document.write写入iframe,然后尝试覆盖同一iframe上的文档.在FF中,这可以正常工作.但是,在初始document.write的chrome代码中,即使我用第二个document.write覆盖它,它仍然存在.
看到这个小提琴:http://jsfiddle.net/meQcC/
如果您按照预期在FF中查看它,iframe是空白的,并且您实际上得到“函数onLoad未定义错误”,因为在行中
doc.write("<html><head><script>;" +
"<\/script></head><body onl oad='onLoad()'></body></html>");
显然没有定义onLoad函数.但是,如果你在chrome中查看相同的小提琴,iframe将显示一个黑色矩形,并且onLoad调用没有错误,它将调用先前定义的函数,就像它仍然存在一样!!!!
有没有办法清除chrome中的文档,以便我可以覆盖iframe的内容而不用旧代码以某种方式持久存在?这是chrome中的错误吗?
解决方法:
是的,这是Chrome中的一个错误(或者更准确地说是在WebKit中).根据规范,它应该是创建一个新的Window对象并删除所有全局事件侦听器,它不是这样做的.
特别是,见http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#dom-document-open步骤14.
标签:javascript,google-chrome,firefox,document-write 来源: https://codeday.me/bug/20190613/1231831.html