如何在GreaseMonkey中延迟XMLHttpRequest,直到目标页面加载完毕

时间:2015-04-06 19:26:14

标签: javascript ajax greasemonkey tampermonkey

这是特定于GreaseMonkey的请求。我正在尝试使用 GM_xmlhttpRequest 向网页发出GET请求(跨域)。问题是,在浏览器中打开页面(再次通过AJAX)之后,目标页面在页面加载一次之后(在此之前它显示进度条几秒钟)就会获取大量内容。我想只在加载了所有内容时才获取此页面的内容,所以我只想找到一种在请求中添加几秒延迟的方法。它甚至可能吗?如果是的话,我该怎么做?

编辑:我想我不够清楚。我正在调用这样一个页面:

    GM_xmlhttpRequest({
method: "GET",
url: "http://example.com",
onload: function(response) {
            if(response.responseText.length > 0)
            {
                callBack(response.responseText);
            }
        },
onerror: function(response) {
            log("Error in fetching contents: " + response.responseText);
        }

    });

我实际使用的页面代替example.com加载一次,但随后延迟加载其有用内容。但response.responseText只包含初始加载HTML。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用一个简单的setTimeout,它会延迟一段固定的时间(例如,如果页面加载速度很快,则为2秒,如果您想确定,则为更多)。

另一个解决方案是在身体上使用变异观察器来添加或删除节点,然后激活你的脚本并杀死观察者。

对于参考文献,MDN网站的示例确实有助于我理解并使用变异观察者进行重面提升用户脚本