在javascript或jQuery中检测iframe(不是同一个域,动态添加)的负载?
有没有办法检测何时在javascript/jQuery中加载iframe?在下列情况下:在javascript或jQuery中检测iframe(不是同一个域,动态添加)的负载?,javascript,jquery,dom,iframe,Javascript,Jquery,Dom,Iframe,有没有办法检测何时在javascript/jQuery中加载iframe?在下列情况下: 我控制不了这个框架。它是由另一个javascript插件添加的 它指向另一个域(所以我想我不能使用同一个域的解决方案) 我不知道iframe是什么时候加载的。我可以设置一个时间间隔,每次检查是否有iframe,并尝试调用他的加载事件(因此iframe被动态添加到DOM中) 我已经在其他问题中读到了这一点,但它们要么不完整,要么不假设这三个条件 提前谢谢 对@Jaromanda X回答的补充: 我需要在o
- 我控制不了这个框架。它是由另一个javascript插件添加的
- 它指向另一个域(所以我想我不能使用同一个域的解决方案)
- 我不知道iframe是什么时候加载的。我可以设置一个时间间隔,每次检查是否有iframe,并尝试调用他的加载事件(因此iframe被动态添加到DOM中)
我需要在
observer.observe(document.body,{childList:true})中为这个答案添加一个选项代码>实际创建:observer.observe(document.body,{childList:true,subtree:true})代码>。子树选项也适用于目标的所有后代(本例为document.body)。使用变异观察者来检测何时已将iframe添加到DOM中,然后您只需添加一个加载
事件侦听器来检测iframe何时已加载
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
[].filter.call(mutation.addedNodes, function (node) {
return node.nodeName == 'IFRAME';
}).forEach(function (node) {
node.addEventListener('load', function (e) {
console.log('loaded', node.src);
});
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
使用变异观察者来检测何时将iframe添加到DOM中,然后只需添加一个load
事件监听器来检测iframe何时被加载
var observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
[].filter.call(mutation.addedNodes, function (node) {
return node.nodeName == 'IFRAME';
}).forEach(function (node) {
node.addEventListener('load', function (e) {
console.log('loaded', node.src);
});
});
});
});
observer.observe(document.body, { childList: true, subtree: true });
可能至少有助于检测何时创建iframe元素-然后可以像往常一样向iframe添加加载事件侦听器。。。可能至少有助于检测何时创建iframe元素-然后您可以像往常一样向iframe添加加载事件侦听器…谢谢,这非常有效!为了记录在案,我需要在observer.observe(document.body,{childList:true})中为这个答案添加一个选项代码>实际创建:observer.observe(document.body,{childList:true,subtree:true})代码>。子树选项也适用于目标的所有后代(本例为document.body)。你说得对-我使用的MutationObserver代码中有这个选项(不适用于iframe,也不适用于其他内容),我不确定我是如何错误地复制它的!我会把它添加到回答中谢谢,这很有效!为了记录在案,我需要在observer.observe(document.body,{childList:true})中为这个答案添加一个选项代码>实际创建:observer.observe(document.body,{childList:true,subtree:true})代码>。子树选项也适用于目标的所有后代(本例为document.body)。你说得对-我使用的MutationObserver代码中有这个选项(不适用于iframe,也不适用于其他内容),我不确定我是如何错误地复制它的!我将把它添加到答案中