如果iframe内容发生变化,请运行chrome扩展JS

时间:2019-04-21 08:46:48

标签: javascript google-chrome-extension

我有一个网站,该网站通过iframe进行大量操作,并根据单击侧边栏中的按钮来更改内容。

我想做的是:

a)每5秒自动触发我的JS代码(我知道,不得已...)

b)一旦在iframe中检测到任何更改(不仅在加载框架内容时,而且在框架内容刷新数据表时),都会触发JS

我具有该字段的iframe ID,但是无法添加实际上在iframe内容中发生任何更改后实际上触发的侦听器。以下所有触发器均不会削减它:

// no error
chrome.storage.local.get("obj", function (res) {
    console.log("setting page data object from listener:");
    console.log(res);
    var iframe_id = res.obj.iframe_id;
    document.getElementById(iframe_id) && document.getElementById(iframe_id).addEventListener("change", function () {
        console.log("iFrame updated");
        findKeyword();
    });
});*/

// no error
chrome.storage.local.get("obj", function (res) {
    console.log("setting page data object from listener:");
    console.log(res);
    var iframe_id = res.obj.iframe_id;

    $(iframe_id).find("body").on('mouseup', function(event) {
        console.log("iFrame updated");
        findKeyword();
    });
});

// error - Cannot read property 'contentDocument' of null
chrome.storage.local.get("obj", function (res) {
    console.log("setting page data object from listener:");
    console.log(res);

    var iframe = document.getElementById(res.obj.iframe_id);
    iframe.contentDocument.body.addEventListener('change', function() {
        console.log("iFrame updated");
        findKeyword();
    });
});

非常感谢, A2k

0 个答案:

没有答案