【问题标题】:How do I make Greasemonkey do something when an AJAX call returns?当 AJAX 调用返回时,如何让 Greasemonkey 做某事?
【发布时间】:2012-01-12 04:52:27
【问题描述】:

在 YouTube 上,当我点击 trending 时,它会进行 AJAX 调用以获取热门视频。

现在,我制作了一个脚本,可以删除我已经看过的所有视频。

该脚本适用于首页,但我希望在单击 trending 时也执行该脚本。

【问题讨论】:

    标签: javascript ajax event-handling youtube greasemonkey


    【解决方案1】:

    您可以像这样拦截 AJAX 调用:

    但这会变得一团糟,而且您会遇到将您关心的 AJAX 调用与您不关心的调用分开的问题。

    在实践中,只关注最终结果 HTML 并在它发生变化时对其进行处理会更简单。

    我有一个方便的实用功能,在这些情况下效果很好。见this answer to "Fire Greasemonkey script on ajax request"

    【讨论】:

    • 我最终实现了您的“实践”示例,我每秒检查一次页面并处理链接并向它们添加done 类。我要问一个新的 SO 问题,询问当 DOM 发生变化时我是否可以这样做......
    • 嗯。不清楚你在问什么。如果您使用的是waitForKeyElements(),它会这样做。它的默认模式是只要页面加载就进行检查。我现在要回答新问题。
    【解决方案2】:

    将 jquery 侦听器附加到点击点怎么样?

    jQuery("a[data-feed-name='trending']").click(function(){
     alert('trending clicked')
    });
    

    仅供参考,在此脚本之前包含 jquery 库:)

    【讨论】:

    • 这个问题是脚本在 AJAX 调用执行之前触发...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多