Передача массива аргументов
Есть скрипт, подключаемый к странице, есть скрипт приложения(фоновый).
Общаются они посредством 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, время: 08:50. |