Я прочитал бесчисленные ответы здесь, в Stockoverflow, но, похоже, никто не помог мне ответить на мой вопрос. Вот мой код:
Background.html
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getIP") {
var req = new XMLHttpRequest();
var domain
var ip = "bla";
chrome.tabs.getSelected(null,function(tab) {
domain = tab.url;
domainSplit = domain.match(/^[\w-]+:\/*\[?([\w\.:-]+)\]?(?::\d+)?/)[1];
req.open (
"GET",
"http://colourpad.co.uk/projects/dub3helper/ip.php?" + domainSplit,
true);
req.onreadystatechange = getIP;
req.send(null);
function getIP() {
if(req.readyState == 4) {
var ip = req.responseText;
alert (ip);
sendResponse({domainToIP: "Tester " + ip });
}
}
});
}
else {
sendResponse({}); //Snub them
}
});
Содержимое скрипта
chrome.extension.sendRequest({method: "getIP"}, function(response) {
$("p#versionNumber").append("<span>: " + response.domainToIP + "</span>");
});
Основы скрипта работают правильно, то есть он возвращает ip как предупреждение (ip); работает с правильными данными IP. Кажется, проблема в отправке переменной ip в мой контент-скрипт. Я думаю, что это может быть простой случай размещения sendResponse в неправильном месте, но я действительно не понимаю, почему в данный момент. Я новичок в разработке расширений Chrome.
Любая помощь приветствуется, она сводит меня с ума!