基本上,我尝试通过GM_xmlhttpRequest()
Greasemonkey API发送请求并中止它。
这是一个演示脚本:
// ==UserScript==
// @name example
// @namespace example795cb636-1f35
// @include https://www.google.com/
// ==/UserScript==
var ret = GM_xmlhttpRequest({
method: "GET",
url: "https://www.google.com/",
onerror: function(response) {
console.log("error : " + response.statusText);
},
onabort: function(response) {
console.log("abort : " + response.statusText);
},
onload: function(response) {
console.log("complete : " + response.statusText);
}
});
try{
ret.abort();
}
catch(e){
console.log(ret);
console.log(e);
}
这是我的控制台输出:
我错过了什么?
详细说明:
Firefox 20.0a1
Greasemonkey 1.5
答案 0 :(得分:4)
<强>更新强>
提交了rolled into GM version 1.9的补丁。这个问题现在正式解决了。
这是Greasemonkey中的一个错误。在Greasemonkey's xmlhttprequester.js
source中,abort
为not exposed properly, per Mozilla's COW interface。
相关代码 :
var rv = {
__exposedProps__: {
finalUrl: "r",
readyState: "r",
responseHeaders: "r",
responseText: "r",
status: "r",
statusText: "r"
},
abort: function () { return req.abort(); }
};
但 应为:
var rv = {
__exposedProps__: {
finalUrl: "r",
readyState: "r",
responseHeaders: "r",
responseText: "r",
status: "r",
statusText: "r",
abort: "r"
},
abort: function () { return req.abort(); }
};
请参阅相关错误:
修补代码修复了错误。
你可以: