function myFunction(arg)
{
var a;
GM_xmlhttpRequest({
method:"GET",
url:"http://site.com/arg?" + arg,
headers:{
"User-Agent":"monkeyagent",
"Accept":"text/monkey,text/xml",
},
onload:function(details) {
a = details.responseText;
}
});
return a;
}
b = myFunction("blabla");
alert(b);
当我尝试它时只返回一条空白消息。
答案 0 :(得分:1)
由于a
异步操作,您无法返回GM_xmlhttpRequest
。
在myFunction
返回后,onload函数将激活很长时间。你想要用a
做的任何事情都必须从onload函数中调用的函数完成。
Greasemonkey 只是 添加了对同步模式的支持,从版本0.9.9开始。如果必须,您可以下载版本0.9.10的预发布版here。
但是,你会很聪明地学会异步处理这种事情。您将获得更快,响应更快的UI,而不是“挂起”和“冻结”。对于各种现实生活中的编程情况来说,这是一个很好的概念。