我正在尝试根据某些url条件,通过chrome扩展名修改(仅使用JQuery )CI网络界面的DOM。 目前,我无法有效地更改大多数内容,因为dom每隔一到两秒钟就会更新一次,而这会覆盖我的ui更改。
请参见下面的dom捕获:
目标是在没有由我触发的任何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):