Есть ли способ передать значение в GM_xmlhttprequest? - PullRequest
2 голосов
/ 08 февраля 2009

Как указано здесь:

Как я могу вернуть значение из GM_xmlhttprequest?

У меня есть скрипт, который является асинхронным. Я хотел бы передать значение в эту функцию, чтобы при вызове функции onload я мог использовать ее для отображения на веб-странице.

Проблема, с которой я столкнулся, заключается в том, что это значение будет меняться каждый раз, когда я передаю его в функцию.

Так, например, если я передал 'abc', 'def', 'xyz'.

Я бы закончил с

xyz
xyz
xyz

вместо

abc
def
xyz

Итак, мой вопрос: как мне передать значение в эту функцию, чтобы каждый вызов функции знал, что отображать, когда это будет сделано?

1 Ответ

5 голосов
/ 08 февраля 2009

Вы ищете закрытие : -

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" после завершения каждого невыполненного запроса.

...