我在这里有这个代码:
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(/Invalid order<\/td><\/tr>The target planet is blocking all infiltrations[\s\S]
/im)) { // Successful match infiltrationResult = 'Invalid Order'; } else { // Match attempt failed infiltrationResult = 'Infiltration Successfully Created'; } } });当我添加
警报(infiltrationResult);
在分配之后,我正确地看到了字符串.
但是,在函数退出后,我尝试了相同的警报,我得到:
undefined我有什么想法我做错了吗?
1> Rob Kennedy..:请求以异步方式运行.这就是该函数首先采用
onload
回调函数的原因.如果它是同步的,那么GM_xmlhttpRequest
只需像普通函数一样返回响应细节.在等待请求返回时,调用后的代码
GM_xmlhttpRequest
继续运行.您的脚本正确识别infiltrationResult
未定义的脚本,因为请求尚未完成.如果您需要做的不仅仅是在请求返回时分配变量,那么在
onload
回调中执行此操作.推荐阅读
如何解决《在ApacheSpark中按多个字段排序》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Solidus安装失败》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Json数据出错:Laravel5.1》经验,为你挑选了1个好方法。 ... [详细] 如何解决《IntelliJ说,应该不应该作为参数x传递》经验,为你挑选了2个好方法。 ... [详细] 如何解决《angular2复选框ng-model未更新》经验,为你挑选了5个好方法。 ... [详细] 如何解决《如何将Rust`Args`转换为argc和argvC等价物?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在ASP.NETCoreMVC6中记录到数据库》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何使函数参数可选(避免每次调用所有参数)》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何访问私有方法》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在javascript中使用splice从数组中删除所有元素》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在android-priority-jobqueue中检索当前活动作业列表》经验,为你挑选了1个好方法。 ... [详细] 如何解决《媒体查询字体大小不起作用》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何播放AMR音频文件?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《Django,级联移动到单独的表而不是级联删除》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Powershell实例的Streams属性上的"Information"属性不可用于编译时》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何从具有相同名称的嵌套类型的类中引用全局类型?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在Selenium中isDisplayed()vsisVisible()》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何将current_user传递给Sidekiq的Worker》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Xamarin/VisualStudio2015:自定义Proguard配置》经验,为你挑选了1个好方法。 ... [详细] 如何解决《将变量传递给catch-Java》经验,为你挑选了1个好方法。 ... [详细]吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1Visual Studio 2015不断切换启动项目
- 2使用Dapper自动映射输出参数
- 3如何清除数组中的TextField?
- 4将语言更改为Bootstrap Datetimepicker
- 5文件系统变为只读时的弹性搜索
- 6如何阅读appSettings键
- 7如何从几个INSERT中插入id
- 8从javascript onclick返回值到变量或使用onclick更改全局变量
- 9按函数名称c ++ 11参数化模板
- 10UWP App中的计时器未链接到UI
- 11ViewPager addOnPageChangeListener不在同一个tabClick上工作
- 12django 1.8不适用于CentOs 6.5服务器
- 13按某些重复索引值拆分列表
- 14Big Swift类导致Xcode中的自动完成速度慢 - 如何拆分成几个文件
- 15方法是否重载多态在C#中的早期绑定?
- 16TeamCity中的MSBuild步骤考虑app.config而不是ASP.NET WEB API项目的web.config,导致警告MSB3247
- 17Php Regex在字符串中的第一个全大写字母后插入字符
- 18在bootstrap页面上居中表
- 19可以在go中覆盖自动格式化程序
- 20Angular服务返回undefined
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有