我的Greasemonkey脚本中有GM_xmlhttpReqeust
函数设置如下(简化版)。
GM_xmlhttpRequest({
synchronous: false,
method: "HEAD",
url: "http://www.example1.com",
onload: function(response){console.debug(url);},
});
GM_xmlhttpReqeust
在我的代码中以 异步 模式调用。
访问后,http://www.example1.com
执行 302重定向 至http://www.example2.com
我想在url
回调函数中访问原始http://www.example1.com
参数(onload
)的值。
根据GM_xmlhttpReqeust
documentation,可以在http://www.example2.com
内部response.finalUrl
回调中找到onload
。
有人可以指点我正确的Greasemonkey / JavaScript方式吗?
答案 0 :(得分:2)
我在下面找到了一个愚蠢的解决方案,我希望它会起作用。
GM_xmlhttpRequest ( {
synchronous: false,
method: "HEAD",
url: "http://www.google.com",
onload: function (response) {
console.debug (this.url);
}
} );
答案 1 :(得分:2)
传递给response
的{{1}}为an object with these key properties:
你想要onload
,你会得到它:
finalUrl
要获取/了解最初请求的网址,您必须在closure中致电GM_xmlhttpRequest ( {
synchronous: false,
method: "HEAD",
url: "http://www.google.com",
onload: function (response) {
console.debug (response.finalUrl);
}
} );
。像这样:
GM_xmlhttpRequest()
答案 2 :(得分:0)
指的是
http://userscripts-mirror.org/topics/51161
首先你需要:
var method = this;
var oldargs = [].slice.call( arguments, 1 );
return function () {
var newargs = [].slice.call( arguments );
return method.apply( thisObject, oldargs.concat( newargs ));
};
}
然后你走了,类似的方式......