javascript - Greasemonkey AJAX返回的abort()不是一个函数?

标签 javascript ajax greasemonkey gm-xmlhttprequest

基本上,我尝试通过 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);
}

这是我的控制台输出: enter image description here

我错过了什么?

详细信息:

Firefox 20.0a1
油猴1.5

最佳答案

更新:
提交的补丁为rolled into GM version 1.9 。此问题现已正式解决。


这是 Greasemonkey 中的一个错误。在 Greasemonkey's xmlhttprequester.js source中止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(); }
};


查看相关错误:

  1. Provide abort() for GM_xmlhttpRequest
  2. GM_xmlhttpRequest response.responseText is undefined in...
  3. Use exposedProps

修补代码修复了错误。

你可以:

  1. fork the Greasemonkey code ,并使用您自己的版本(推荐)。
    和/或
  2. File a bug report .

关于javascript - Greasemonkey AJAX返回的abort()不是一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185249/

相关文章:

javascript - Greasemonkey 脚本停止工作并出现错误 : unsafeWindow. document.watch 不是函数

c# - 在 MVC Action 中使用基类作为重载,但收集所有数据

javascript - 当 Controller 返回空结果时,如何在jsp中显示空值?

php - 选择下拉列表时获取文本框中的值

Firefox + greasemonkey 中的 Javascript 文本范围

javascript - Greasemonkey:突出显示 HTML 文件中的多个单词

php - 有人可以解释一下这段代码吗?

javascript - 循环与 if 语句的效率

javascript - 像 SWF 一样缩放 SVG (Raphael.js)

javascript - 从另一个站点远程调用 javascript 函数