Показать сообщение отдельно
  #4 (permalink)  
Старый 26.04.2017, 11:04
Профессор
Отправить личное сообщение для Артист Посмотреть профиль Найти все сообщения от Артист
 
Регистрация: 25.09.2016
Сообщений: 163

А как вот тут сделать:
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)
Ответить с цитированием