Chrome扩展程序Javascript可检测动态加载的内容

我正在实施Chrome扩展应用。 我想用标签(在我的webapp的主页上)用“#”替换href属性。 问题是标记可能由ajax动态加载,并且可以由用户操作重新加载。 关于如何让chrome-extension检测ajax加载的html内容的任何建议?

有两种方法可以做到,

第一个解决方案是处理ajax请求

jQuery中有一个.ajaxComplete()函数,它处理页面上的所有ajax请求。

content script

 var actualCode = '(' + function() { $(document).ajaxComplete(function() { alert('content has just been changed, you should change href tag again'); // chaging href tag code will be here }); } + ')();'; var script = document.createElement('script'); script.textContent = actualCode; (document.head||document.documentElement).appendChild(script); script.parentNode.removeChild(script); 

第二种解决方案是监听内容的变化

对于突变事件 ,这也是可能的,同样在content script

 $(document).bind("DOMSubtreeModified", function() { alert("something has been changed on page, you should update href tag"); }); 

您可以使用一些不同的选择器来限制您控制更改的元素。

 $("body").bind("DOMSubtreeModified", function() {}); // just listen changes on body content $("#mydiv").bind("DOMSubtreeModified", function() {}); // just listen changes on #mydiv content