在后台有一个小书签 运行 并根据页面内容更新进行操作

having a bookmarklet run in the background and act on page content update

我正在编写一个小书签,它只是从特定网页中删除一些内容。
现在问题是网页有 "neverending scroll" 分页,您需要在每个页面加载后一次又一次地单击小书签。

是否可以使用小书签捕捉网页内容更新?

根据 http://en.wikipedia.org/wiki/DOM_events#Common.2FW3C_events DOM 突变事件已弃用,因此似乎没有跨浏览器的方式来捕获页面内容更新事件。

phari 向新的 DOM 突变事件 API 发布了 link,这似乎在所有现代浏览器中都受支持。该页面的示例使用代码:

// select the target node
var target = document.querySelector('#some-id');

// create an observer instance
var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    console.log(mutation.type);
  });    
});

// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };

// pass in the target node, as well as the observer options
observer.observe(target, config);

// later, you can stop observing
observer.disconnect();

如果您需要对旧版浏览器的支持,您可能会尝试 jquery-observe which has fallback for older browsers. Or write it yourself, i.e. like here

另一种选择是检查网站的源代码,也许您可​​以在网站内容更新后找到触发的一些事件。或者你可以挂钩一些在内容更新后调用的函数,或者,作为最后的手段,你可以简单地设置间隔和函数,它会检查页面上的任何内容是否发生了变化。