Я создаю расширение Chrome, которое содержит contextMenu и всплывающее окно. Всякий раз, когда я щелкаю правой кнопкой мыши по тексту и нажимаю на ContextMenu моего приложения, оно должно всплывать в отдельном окне с некоторой информацией в нем.
Некоторая часть eventPage.js
выглядит так:
return new Promise((reslove, reject) => {
fetch(url, myInit)
.then(response => response.json())
.then(responseText => {
var popup_url = 'popup.html'
var createData = {
"url": popup_url,
"type": "popup",
"top": 5,
"left": 5,
"width": 500,
"height": 500
};
chrome.windows.create(createData, function () { });
chrome.runtime.sendMessage({
msg: "something_completed",
data: {
subject: "Loading",
content: "Just completed!"
}
});
console.log(responseText)
}).catch(err => {
//console.log(err);
reject(err);
});
}).catch(err => {
console.log(err);
});
Я вызываю popup.html
, когда выбрано contextMenu, и отправляю сообщение
msg: "something_completed",
data: {
subject: "Loading",
content: "Just completed!"
}
с использованием runtime.sendMessage
. В моем popup.js
, который входит в popup.html
, у него есть приемник
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.msg === "something_completed") {
// To do something
alert(request.msg)
console.log(request.data.subject)
console.log(request.data.content)
}
}
);
Однако ничего не происходит. Я следил за документацией, но, похоже, что-то не так. Любая помощь, пожалуйста?