Tom*_*ght 3 javascript twitter jquery greasemonkey mutation-events
我正在尝试编写一个改变Twitter帖子中关键字的Greasemonkey脚本.麻烦的是,内容是"延迟加载",并在用户请求时添加.
如果我在添加的元素中添加事件监听器,我可以使用JQuery delegate()
.因为我只是想在加载时更改内容,这似乎不合适.
变异事件似乎符合要求.它们是Gecko特有的,但这对于Greasemonkey脚本来说并不重要.问题是,它们已被折旧并且有一系列非常好的理由.
当然我可以使用计时器并定期轮询DOM,但这看起来很蹩脚.
如何检测DOM的添加内容并对插入的元素做出反应?
如果你想检测AJAX创建的节点你的选择(除了你明智要排除的Mutation事件)是:
我已经一次完成了所有这些,除了一个以外都有一个主要的缺点:
我建议你使用waitForKeyElements()实用程序并完成它.它非常易于使用.例如:
// ==UserScript==
// @name Highlight good comments
// @include http://SOME_SITE/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// ==/UserScript==
function highlightGoodComments (jNode) {
if (/beer/i.test (jNode.text () ) ) {
jNode.css ("background", "yellow");
}
}
waitForKeyElements ("#userBlather div.comment", highlightGoodComments);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2484 次 |
最近记录: |