Блин, только что всё работало, и вдруг стало выдавать ошибку в background.js (e.data.
response({value: str})):
Цитата:
|
Uncaught TypeError: Cannot read property 'response' of undefined(…)
|
Ничего не менял, только из XMLHttpRequest ответа нужный текст копировал и записал в str...
background.js:
function GetHttpRequest(href, arg)
{
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)
}
function ProcessRequestChange(e)
{
var xhr = this
if(xhr.readyState != 4) return
if(xhr.status == 200)
{
var html = xhr.responseText
switch(e.data.rid)
{
/*-------*/
case 3: // Гильдия наёмников
{
if(html.indexOf('возвращайся с победой') > -1 || (html.indexOf('у нас нет сейчас заданий') > -1 && html.indexOf('Вы получаете') < 0)) break
var s = html.indexOf('align=left rowspan=2>') + 21
var e = html.indexOf('</td>', s)
var str = html.substring(s, e)
e.data.response({value: str})
break
}
/*-------*/
case 0: break // Без обработки
}
}
}
chrome.runtime.onMessage.addListener
(
function(request, sender, sendResponse)
{
switch(request.id)
{
/*-------*/
case 6: // Гн
{
GetHttpRequest(request.href, {rid: request.rid, response: sendResponse})
return true
break
}
/*-------*/
}
return false
}
)
maps.js:
chrome.runtime.sendMessage
(
{id: 6, href: 'http://www.site.ru/bla-bla.php', rid: 3},
function(response)
{
//alert('ответ пришел\n' + response.value)
document.querySelector('#fades').style.display = 'inline'
document.querySelector('#guild').style.display = 'inline'
document.querySelector('#mercenary').innerHTML = response.value
}
)