使用JQuery获得任何DOM更改事件的通知(无MutationObserver)

时间:2019-05-09 10:52:59

标签: jquery google-chrome-extension opera-extension

我正在尝试根据某些url条件,通过chrome扩展名修改(仅使用JQuery )CI网络界面的DOM。 目前,我无法有效地更改大多数内容,因为dom每隔一到两秒钟就会更新一次,而这会覆盖我的ui更改。

请参见下面的dom捕获:

example

目标是在没有由我触发的任何dom更改之后立即将dom更改回我需要的状态。 这就是我尝试过的。

$(document).ready(function () {
    var reg = /.+view\/\d\d\d\d\d/;
    var pageURL = $(location).attr("href");

    $("li#viewTab").css("background-color", "yellow");
    $(".notificationHeader").css("background-color", "green");
    $(".notificationHeaderBody").css("background-color", "blue");

    // trying to get notified for the event
    $("body").on('DOMSubtreeModified', "div.notificationHeaderBody", function () {
        alert('div changed');
    });

    // if some condition is true, change the dom
    if (reg.test(pageURL)) {
        // perform some task
        var message = "We're on the right page";
        var pathname = window.pathname;
        var hash = window.hash;
        var href = window.href;
        alert(message
            + "\n pathname: " + pathname
            + "\n hash: " + hash
            + "\n href: " + href
        );
    }
});

我已经搜索了一段时间,似乎找不到任何有用的东西,也没有人找到或解决了这个问题。 有人知道吗?

已经发现的东西:

替代解决方案(使用MutationObjerver):

0 个答案:

没有答案