在后台运行书签并对页面内容更新进行操作

时间:2015-03-31 14:40:53

标签: javascript jquery bookmarklet

我正在编写一个只从特定网页中删除某些内容的书签 现在的问题是网页上有“无休止的滚动”#34;分页,您需要在每个页面加载后反复单击书签。

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

1 个答案:

答案 0 :(得分:2)

根据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。或者自己写一下,比如这里https://stackoverflow.com/a/14570614/4712360

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