synchronization - 同步 GM_xmlhttpRequest 异步作用?

标签 synchronization greasemonkey tampermonkey gm-xmlhttprequest

我正在尝试让 GM_xmlhttpRequest 调用同步运行,但我无法让它按照我的预期工作:

function myFunction (arg) {
    var a;

    GM_xmlhttpRequest ( {
        method:         "GET",
        url:            "http://example.com/sample/url",
        synchronous:    true,

        onload: function (details) {
            a = details.responseText;
        }
    } );

    return a;
}
b = myFunction ();
alert (b);

我在这里从来没有为 b 拿回任何东西;它是未定义的。我这里缺少一些步骤吗?
我使用的是 Greasemonkey v0.9.13 和 Firefox v9.0.1。

最佳答案

刚刚在 Google 中偶然发现了这个主题。

同步 GM_xmlhttpRequest 返回结果,而不是在 onload 回调中执行它。

所以这是正确的:

var details = GM_xmlhttpRequest({
  method:"GET",
  url:"http://site.com/sample/url",
  synchronous: true
});
a = details.responseText;

您从一开始就创建了变量“a”,永远不要填充它并返回它。因此,它是未定义的。

关于synchronization - 同步 GM_xmlhttpRequest 异步作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32601759/

相关文章:

c# - 同步串口读写

java - 在Java服务器和多个Web浏览器之间是否存在用于数据同步的框架?

c - 如何在C中使用 "anonymous"管道进行进程同步?

javascript - 用户脚本通知适用于 Chrome 但不适用于 Firefox?

sql-server - 微软 SQL 服务器 2005 : Initializing a merge subscription with alternate snapshot location

xmlhttprequest - 使用greasemonkey拦截特定地址的XMLHttpRequest

javascript - 添加按键监听器并使用 Javascript 单击 Greasemonkey 中的链接

javascript - Userscript 不会取消对某些页面上文本输入的关注

javascript - Greasemonkey 用户脚本被内容安全策略阻止

javascript - Tampermonkey 忽略@exclude