我正在为Stack Overflow编写Chrome扩展,并且在页面更新(即将注释/答案添加到内容)时需要重新运行检查。监视页面变化
我试过订阅$(document).ajaxComplete()
,但那似乎从未出现过。
我发现绑定到DOMSubtreeModified
允许我正确更新,但它似乎也经常触发也。在页面加载时,它可以被调用21次(有时它只被调用一次)。同样,如果我在控制台中执行jquery选择,该事件将再次触发。
$(setup);
var hits = 0;
var original_title;
function setup()
{
original_title = document.title;
doWork();
}
function doWork()
{
//unbind so our own changes don't cause infinite loops of the event.
$("#mainbar").unbind("DOMSubtreeModified", findSkeets);
//Debug: Add the Number of function hits to the title bar
hits++;
document.title = "(" + hits + ") " + original_title;
//Do Work Here
//Rebind to the event now that we've finished executing;
$("#mainbar").bind("DOMSubtreeModified", findSkeets);
}
是否有更有效的方法来监视页面的变化?我看到一些Chrome挂在了SO上,这可能是这个扩展的结果,所以我想尽可能地减少影响。
你先生,我的英雄!感谢那。我将来也需要铭记这一点。 –