Запустите расширение Chrome JS, если изменяется содержимое iframe. - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть веб-сайт, который активно работает с помощью фреймов и изменяет содержимое в зависимости от того, какая кнопка на боковой панели нажата.

Я хотел бы либо:

a) запуститьмой JS-код автоматически каждые 5 секунд (я знаю, в крайнем случае ...)

b) запускает JS, если в iframe обнаружено какое-либо изменение (не только при загрузке содержимого кадра, но икогда содержимое кадра обновляет данные)

У меня есть идентификатор поля iframe, но я не могу добавить прослушиватель, который фактически запускается после того, как в содержимом 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...