2009-02-08 128 views
2

由于此处表示:有没有办法将一个值传递给GM​​_xmlhttprequest?

How can I return a value from GM_xmlhttprequest?

我有一个脚本,是异步的。我想给这个函数传递一个值,这样当onload函数被调用时,我可以使用它来显示在网页中。

我遇到的挑战是每当我将它传递给函数时,这个值都会改变。

所以,例如,如果我通过'abc','def','xyz'。

我最终会与

xyz 
xyz 
xyz 

,而不是

abc 
def 
xyz 

所以,我的问题是,如何将我传递一个值到这个函数,这样函数的每次调用知道如何处理显示完成后?

回答

4

你正在寻找一个closure: -

var urls = {"abc": "http://somehost/aurl", 
      "def": "http://somehost/otherurl", 
      "ghi": "http://someotherhost/aurl" } 

for (var k in urls) 
{ 

    GM_xmlhttpRequest({ 
     method: 'GET', 
     url: urls[k], 
     onload: function(text) { 
      return function(xhr) { 
       //Do stuff with xhr responseText etc and the text parameter 
       alert(text) 
      } 
     }(k) 
    } 
} 

这每一个未完成的请求完成后会提示 “ABC”, “DEF” 和 “GHI”。

+0

非常酷。谢谢! – GeoffreyF67 2009-02-08 22:50:23

相关问题