Synchronous GM_xmlhttpRequest acting asynchronously?

为君一笑 提交于 2019-11-26 23:39:34

问题


I'm trying to get a GM_xmlhttpRequest call to behave synchronously, but I can't get it to work like I expect:

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);

I never get anything back for b here; it's undefined. Is there some step that I'm missing here?
I'm using v0.9.13 of Greasemonkey, and v9.0.1 of Firefox.


回答1:


Just stumbled upon this topic in Google.

Synchronous GM_xmlhttpRequest RETURN the result instead of executing it in the onload-callback.

So this would be right:

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

You create the var "a" in the beginning, never fill it and return it. Therefore, it is undefined.



来源:https://stackoverflow.com/questions/8778267/synchronous-gm-xmlhttprequest-acting-asynchronously

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!