问题 如何在AJAX更新后运行Greasemonkey函数?


我有一个GM脚本,可以在Facebook页面上的某些超链接旁边添加按钮。但是,任何AJAX更新都会破坏该部分页面中的按钮(即当您单击“查看更多注释”时 - 该线程上的所有按钮都会消失)

我是什么 愿做:
在某些AJAX操作完成后重新运行我的GM功能 - 主要是在查看更多注释和加载新页面时(即单击到不同的组页面,这都是AJAXed)

我是什么 目前做:
有一个30秒的循环,每30秒重新运行一次我的代码。不理想。设置较短的循环只会导致延迟
编辑 - 它实际上制作了越来越多的按钮。 超 不理想

你可以如何提供帮助:
在AJAX完成加载后,我应该使用什么代码来触发我的函数?我应该怎么做,以便我的代码只针对我想要的AJAX更新,例如“新页面”和“更多评论”更新?
编辑 - 我需要仅在更新的位上重新运行我的代码(这是否可能?)

笔记:
我搜索了一下,找到了普通jQuery,asp.net等的数字答案,但不是GM-jQ组合。


1448
2018-04-13 03:17


起源



答案:


这是一个常见问题。

使用 waitForKeyElements() 功能如图所示 这个答案

默认情况下,它将处理您通过jQuery选择器指定的类型的每个新元素,每个元素一次,并在出现新元素的毫秒内。

~~~
链接到目标页面并准确指定您正在为更具体的应用程序执行的操作。


11
2018-04-13 03:41



谢谢你好先生@brock - 我会给这个旋转,看看我怎么走。至于我已经在我的问题的顶部解释的细节。任何Facebook页面,我在某些超链接旁边插入一个按钮(确切地说是DotD的rallycries)。 - RozzA
这很棒,正是我想要的,谢谢@Brock Adams - RozzA
别客气。乐意效劳。 - Brock Adams


答案:


这是一个常见问题。

使用 waitForKeyElements() 功能如图所示 这个答案

默认情况下,它将处理您通过jQuery选择器指定的类型的每个新元素,每个元素一次,并在出现新元素的毫秒内。

~~~
链接到目标页面并准确指定您正在为更具体的应用程序执行的操作。


11
2018-04-13 03:41



谢谢你好先生@brock - 我会给这个旋转,看看我怎么走。至于我已经在我的问题的顶部解释的细节。任何Facebook页面,我在某些超链接旁边插入一个按钮(确切地说是DotD的rallycries)。 - RozzA
这很棒,正是我想要的,谢谢@Brock Adams - RozzA
别客气。乐意效劳。 - Brock Adams