在iframe内附加突变观察者后,按下iframe内的<a href=''>
按钮是否会删除突变观察者?
我写的代码允许突变观察者检测主体元素的变化,但它没有检测到。我想知道是我写错了代码,还是我认为上面的想法是正确的。
如果变异观察者被删除,我是否应该将变异观察者注册到iframe所属的父帧?
let config = { attributes: true, childList: true, subtree: true, characterData: false };
let htmlBody = document.querySelector('body');
let observer = new MutationObserver(function(mutations, observer) {
mutations.forEach(function(mutation) {
console.log("Mutation calling");
});
});
observer.observe(htmlBody, config);
发布于 2021-06-24 16:50:24
是的,当导航发生时,被注入的javascript会丢失。
Javascript通常绑定到文档,而不是容器(即:浏览器、iframe等)。通常,当导航发生时,任何在该上下文中运行的javascript都会被卸载,以便为新文档及其新javascript做好准备。
在使用iframe的情况下,这一点不会改变。iframe是查看上下文,iframe的文档仍然是一个文档,并且仍然具有与正常加载时相同的语义。能够将代码注入到该文档中并不会改变事情。
https://stackoverflow.com/questions/68111830
复制相似问题