Блин, задолбала уже эта ошибка:
Цитата:
|
Error in event handler for (unknown): TypeError: Cannot read property 'value' of undefined.
|
Если у chrome.runtime.sendMessage назначена функция(в которую ответ приходит), то она всегда что ли будет вызываться?
Просто я сделал одну фигню всплывающим окном(вставил часть другой страницы), через localStorage убрал лишние запросы на сайт...
Безымянный.jpg
Вот это всё равно вызывается:
chrome.runtime.sendMessage
(
{id: 6, href: 'http://www.site.ru/bla-bla.php', rid: 3},
function(response)
{
alert('ответ')
document.querySelector('#fades').style.display = 'inline'
document.querySelector('#guild').style.display = 'inline'
document.querySelector('#mercenary').innerHTML = response.value
}
)
А это обработчик(ну или прослушиватель, как его там правильно) этого сообщения.
Тут всё нормально с return'ами break'ами? Просто я не привык к этой дикости в свитче...
chrome.runtime.onMessage.addListener
(
function(request, sender, sendResponse)
{
switch(request.id)
{
case 4: // Получить значение localStorage
{
var sid = request.sid
sendResponse({sid: sid, value: localStorage[sid]})
break
}
case 6: // Обработчик
{
var l = localStorage['mercenary_guild']
if(l != undefined && l > parseInt(+ new Date() / 1000)) break
alert('запрос')
GetHttpRequest(request.href, {rid: request.rid, response: sendResponse})
return true
break
}
}
return false
}
)
Когда срабатывает это условие:
if(l != undefined && l > parseInt(+ new Date() / 1000)) break
Появляется ошибка. Я понял, что нет параметра value в ответе(он вообще пустой).
Не понятно какого хрена он вообще приходит, ведь там нет sendResponse()...
Если всё так и должно работать, можно хотя бы как - то проверить, что ответ пустой?