作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里有这个代码:
var infiltrationResult;
while(thisOption) {
var trNode = document.createElement('tr');
var tdNode = document.createElement('td');
var hrefNode = document.createElement('a');
infPlanetID = thisOption.getAttribute('value');
var myURL = "http://www.hyperiums.com/servlet/Planetinf?securitylevel=90&newinfiltr=New+infiltration&planetid=" + PlanetID + "&infplanetid=" + infPlanetID;
GM_xmlhttpRequest({
method: 'GET',
url: myURL,
headers: {
'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
'Accept': 'application/atom+xml,application/xml,text/xml',
},
onload: function(responseDetails) {
if (responseDetails.responseText.match(/<b>Invalid order<\/td><\/tr><tr><td><BR><center><font color=#AAAA77 face=verdana,arial size=2>The target planet is blocking all infiltrations[\s\S]<BR><BR>/im)) {
// Successful match
infiltrationResult = 'Invalid Order';
} else {
// Match attempt failed
infiltrationResult = 'Infiltration Successfully Created';
}
}
});
alert(infiltrationResult);
undefined
最佳答案
请求异步运行。这就是为什么该函数需要一个 onload
首先是回调函数。如果是同步的,则 GM_xmlhttpRequest
将像普通函数一样简单地返回响应详细信息。
在等待请求返回时,调用 GM_xmlhttpRequest
后的代码继续运行。您的脚本正确标识了 infiltrationResult
未定义,因为请求尚未完成。
如果您需要做的不仅仅是在请求返回时分配变量,那么在 onload
中执行此操作打回来。
关于variables - 如何从 GM_xmlhttprequest 返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525243/
我是一名优秀的程序员,十分优秀!