Используйте chrome.extension API.
Вы можете отправлять запросы туда и обратно или даже лучше использовать порт для непрерывной связи.
Пример, который я даю, создаст двухстороннюю связь между всплывающей и фоновой страницей, которые соединяются при всплывании.
Просто создайте файл socket.js, который будет включен как на исходную страницу, так и на всплывающую страницу. Тогда на каждом можно просто объявить:
new Socket();
Вот реализация socket.js:
var Socket = function() {
window.socket = this;
this.port = chrome.extension.connect({name:"popupToBackground"});
chrome.extension.onConnect.addListener(function(port) {
if(port.name == "backgroundToPopup") {}
else if(port.name == "popupToBackground") {
window.socket.port = chrome.extension.connect({name:"backgroundToPopup"});
}
else {
return;
}
port.onMessage.addListener(function(msg) {
try {
window[msg.namespace][msg.literal][msg.method].apply(this, msg.args);
}
catch(error) {
// your failed action goes here.
}
});
});
};
Убедитесь, что вы делаете общий метод вызывает в сообщение слушателя работы для вас. Мне нравится формат, который я дал выше - он очень надежный. Для отправки сообщения туда и обратно просто разместить их в сокет:
socket.post({ namespace: "myNamespace",
literal: "myLiteral",
method: "myMethod",
args: ["argOne", "argTwo"]
});
});
Так что, если это были выполнены из всплывающей странице, то фон страницы будет позвонить:
window.myNamespace.myLiteral.myMethod(argOne, argTwo);
Для меня это очень приятно многократно используемый объект javascript. Вы даже можете добавить определенные функции прототипа, если вы хотите - это способ его еще проще послать сообщения:
Socket.prototype = {
sendOneTwo: function() {
socket.post({ namespace: "myNamespace",
literal: "myLiteral",
method: "myMethod",
args: ["argOne", "argTwo"]
});
};
Теперь все, что вы должны сказать:
socket.sendOneTwo();
Связанные: [Связь между сценариями в фоновом контексте (фон сценарий, действия браузера, страница действия, страница опции и т.д.)] (//stackoverflow.com/q/41420528) – Makyen
Возможный дубликат [Как общаться между popup.js и background.js в chrome extension?] (https://stackoverflow.com/questions/13546778/how-to-communicate -between-всплывающих JS-и-фон-JS-в-хром-расширения) – JerryGoyal