Передача массива аргументов
Есть скрипт, подключаемый к странице, есть скрипт приложения(фоновый).
Общаются они посредством chrome.runtime.sendMessage. Вот например я отправляю мессагу в фоновый скрипт, с 2мя параметрами:
function smCalback(response) // Обработчик ответов на сообщения
{
alert('Ответ ' + response.respId)
}
chrome.runtime.sendMessage({msgId: 1, respId: 111}, smCalback) // Отправка сообщения
А это в фоновом скрипте, принимает сообщения, и отвечает на них.
chrome.runtime.onMessage.addListener // Отлов сообщений от контент скриптов
(
function(req, sender, resp)
{
switch(req.msgId) // Ид сообщения
{
case 1: // Некое действие
{
resp({respId: req.respId}) // Ответ на сообщение
break
}
}
return false
}
)
Так вот, как мне передать все параметры в ответе на сообщение, которые были у сообщения? Т.е. чтобы не писать их вот так:
{respId: req.respId}
Конечно это всего лишь пример, на самом деле мне параметры нужно передавать в функции... Гуглил конечно:
function sayHi()
{
for (var i = 0; i < arguments.length; i++)
{
alert( "Привет, " + arguments[i] );
}
}
sayHi("Винни", "Пятачок"); // 'Привет, Винни', 'Привет, Пятачок'
Но не понял нифига, мне перебирать не нужно, я же аргументы подписываю... |
Спасибо. ))
|
А как вот тут сделать:
function GetHttpRequest(href, arg) // Get запрос на url
{
var xhr = new XMLHttpRequest()
xhr.withCredentials = true
xhr.onreadystatechange = function(e)
{
e.data = arg
ProcessRequestChange.apply(this, arguments) // Обработчик
}
xhr.open('GET', href, true)
xhr.send(null)
}
chrome.runtime.onMessage.addListener // Отлов сообщений от контент скриптов
(
function(req, sender, resp)
{
switch(req.msgId) // Ид сообщения
{
case 1: // Некое действие
{
GetHttpRequest(req.href, {reqId: req.reqId, respId: req.respId, response: resp})
return true
}
}
return false
}
)
req - это массив аргументов мессаги, я так понял. resp - функция, отправляющая ответ на мессагу. Нужно передать и аргументы, и функцию(ответ на мессагу будет отправлен позже). Так уже не прокатит, видимо: GetHttpRequest(req.href, req, resp) Может можно в массив аргументов впихнуть и функцию? Типа такого: req.resp = resp GetHttpRequest(req.href, req) |
Да, вроде работает...
|
| Часовой пояс GMT +3, время: 05:19. |