这是我的 GM_xmlhttpRequest 脚本:
// ==UserScript==
// @name test
// @namespace test
// @include http://stackoverflow.com/*
// @version 1
// ==/UserScript==
GM_xmlhttpRequest({
method: "GET",
url: "http://example.com",
onload: function(response) {
alert(response.responseText);
}
});
function begin(){
alert("ready");
}
$(document).ready(function() {
begin();
});
仅提醒example.com的内容,而不是“准备好”。
但是,当我执行以下操作时,没有任何事情发生 - 没有任何警报:
function begin(){
GM_xmlhttpRequest({
method: "GET",
url: "http://example.com",
onload: function(response) {
alert(response.responseText);
}
});
alert("ready");
}
$(document).ready(function() {
begin();
});
我做错了什么?
答案 0 :(得分:3)
我很确定第一个示例显示GM_xmlhttpRequest返回的内容,但不是“ ready ”
在Greasemonkey中无法直接访问jQuery / $。它被加载到页面内(在本例中为stackoverflow.com)。要访问页面的功能/属性,您可以使用unsafeWindow对象(http://wiki.greasespot.net/UnsafeWindow):
unsafeWindow.$(document).ready(function() {
begin();
});
但我建议直接调用begin(),这里不需要$.ready()
,因为GM-scripts总是在DOMContentLoaded事件触发时执行,等于$.ready()
< / p>