在大家发现之前,之前或多或少地有人问过这个问题:Load remote URL with Greasemonkey and jQuery
然而,那是3年前的事了。我尝试了答案中提出的各种方法,但都没有奏效。
基本上,我的问题是这样的:我正在编写一个greasemonkey脚本,目前应该是A)获取页面上的链接,B)请求链接链接到的页面(它在同一主机上), C) 在该页面上找到某个值。我正在使用 jQuery 1.7.2 和最新版本的 Greasemonkey 来尝试完成此操作。
问题是,虽然我可以成功请求页面,但我无法对响应做任何事情。我尝试将响应分配给回调之外的变量,但它最终为空。我已经尝试将响应 html 附加到我在页面上插入的 div 中,但是在 div 上使用 console.log 显示它是空的(即使 firebug 实际上显示了 html)。就像回调一结束,检索到的 html 不仅不存在,而且根本不存在。
所以基本上,我想问如何检索html,以便在请求完成后我可以实际使用它。这是我现在得到的(我已经删除了上述尝试将响应附加到页面上的 div):
function getLink(url){
var resp;
GM_xmlhttpRequest({
method: 'GET',
url: url,
onload: function(response){
resp = response.responseText;
}
});
console.log(resp) //nothing here...
//failed code :(
/*$.ajax(url, {success: function(data){resp = data})
console.log(data)*/
}
我需要编写什么魔术代码才能使上述内容按预期工作?