编程语言
首页 > 编程语言> > javascript – 如何创建在document.write中存活的JS事件侦听器?

javascript – 如何创建在document.write中存活的JS事件侦听器?

作者:互联网

我正在向窗口对象附加一个事件监听器.然后在脚本中,正在使用document.write. (我知道,这很邪恶.我在此事上别无选择.)问题是,document.write消灭了我的听众.有可能避免这种情况吗?

这是一个说明问题的小提琴:http://jsfiddle.net/Fuhzu/

解决方法:

这是不可能的. document.write卸载当前文档,并创建一个新文档.

确认的演示:http://jsfiddle.net/Gk3cX/

window.test = document; //Cache document
document.write('<button onclick="alert(window.test===document)">CLick</button>');
// Clicking shows false! The document has changed!

在没有卸载的情况下覆盖当前文档的唯一选择是innerHTML:

document.body.innerHTML = "Overwritten document's content, kept events.";

标签:document-write,javascript,events
来源: https://codeday.me/bug/20190902/1792234.html