Tag: greasemonkey

如何在不使用DOM突变事件的情况下检测AJAX节点插入?

我正在尝试编写一个改变Twitterpost中关键字的Greasemonkey脚本。 麻烦的是,内容是“延迟加载”,并在用户请求时添加。 如果我向添加的元素添加事件侦听器,我可以使用JQuery的delegate() 。 因为我只是想在加载时更改内容,所以这似乎不合适。 变异事件似乎符合要求。 它们是Gecko特有的,但这对于Greasemonkey脚本来说并不重要。 问题是, 它们已被折旧并且有一系列非常好的理由 。 当然,我可以使用计时器并定期轮询DOM,但这看起来很蹩脚。 如何检测DOM的添加内容并对插入的元素做出反应?

错误:拒绝访问属性“处理程序”的权限

我有一个用于Firefox的greasemonkey脚本,昨天它运行得很好。 我今天尝试使用它(没有代码被修改),我注意到它停止工作。 经过进一步检查,脚本现在抛出以下错误: Error: Permission denied to access property ‘handler’ 在以下代码块中抛出此错误: $(‘body’).click(function() { // code here }); 这个错误神奇地开始发生在今天脚本工作正常昨天。 我不明白为什么在尝试做一些基本的事情时会发生这种错误,例如在jQuery中添加事件处理程序。 我的脚本使用的jQuery已经在脚本执行的页面中使用,因此我使用此代码使GM可以访问它: var $ = unsafeWindow.jQuery; 如果需要,可供参考,以下是我在脚本中使用的以下Greasemonkey函数: // @grant GM_getResourceText // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_getResourceURL 我试过研究这个错误,我找不到任何答案。 所有看似可能有用的问题都涉及iframe,并且在我的代码或运行的网站中找不到单个iframe。 我也尝试删除并重新安装脚本,但没有解决问题。