在后台有一个小书签 运行 并根据页面内容更新进行操作
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
另一种选择是检查网站的源代码,也许您可以在网站内容更新后找到触发的一些事件。或者你可以挂钩一些在内容更新后调用的函数,或者,作为最后的手段,你可以简单地设置间隔和函数,它会检查页面上的任何内容是否发生了变化。
我正在编写一个小书签,它只是从特定网页中删除一些内容。
现在问题是网页有 "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
另一种选择是检查网站的源代码,也许您可以在网站内容更新后找到触发的一些事件。或者你可以挂钩一些在内容更新后调用的函数,或者,作为最后的手段,你可以简单地设置间隔和函数,它会检查页面上的任何内容是否发生了变化。