作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 URL 列表,需要一个接一个地加载每个页面。
这是我心中的主要功能。
mainFunction() {
loop { // Loop through URL list
oPage = func1(URL); //Get page contents
aResult = func2(oPage); //Analyse the contents
func3(aResult); //Do current page modifications
}
}
func1
使用 GM_xmlhttprequest,它是异步的,因此 oPage 导致“underfined”,因为函数在可以检索页面内容之前结束。func2
也使用 GM_xmlhttprequest,所以即使 oPage 是否未定义,aResult 也将是未定义的。
关于如何使所有这些工作有任何想法吗?
func1
func2
和 func3
应该在整个脚本中重复使用,这些函数中的每一个都可以在脚本的不同部分单独或一起使用.
最佳答案
您有什么理由需要使用 Greasemonkey 的特定功能吗?你是在做跨站请求还是特别需要的东西?看着 Wiki对于 Greasemonkey,我找不到将 asynchronous
设置为 false 的选项。
您最简单的选择是包含 JQuery使用 Greasemonkey 脚本并使用 JQuerys AJAX 功能。当然,这可以在没有 JQuery 的情况下完成,但是,这方面的跨浏览器不兼容手动处理是相当痛苦的。
使用 JQuery,您的代码将如下所示:
function func1(url) {
var result;
$.ajax({
type: "GET",
url: url,
async: false,
success: function(data){
result = data;
}
});
return result;
}
你会像这样声明你的变量oPage
:
var oPage = func1(url);
剩下的我想你自己想通了,祝你好运。
关于javascript - 如何在 greasemonkey 中进行同步 AJAX 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257898/
我是一名优秀的程序员,十分优秀!