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.
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