Я пытаюсь создать небольшое расширение для хром. Я хочу использовать скрипт контента в web.whatsapp.com.
Мой манифест:Скрипт содержимого в Whatsapp web
{
"manifest_version": 2,
"name": "Hello world",
"description": "Hello world",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["*://web.whatsapp.com*"],
"js": ["content_script.js"]
}
],
"permissions": [
"activeTab",
]
}
Мой content_script:
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({message: "hi"});
});
Я использую эти коды в моем popup.js, чтобы проверить, если содержание-скрипт впрыскивается:
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
if (response) {
console.log("Already there");
}
else {
console.log("Not there, inject contentscript");
}
});
});
И, по-видимому, он всегда печатает "Not there, inject contentscript"
. Я также проверил content script
в developer tools
на вкладке sources
и не смог найти там своего сценария. Что я сделал не так?
Это кажется вам не хватает слэш в вашем шаблоне, он должен быть '*: // web.whatsapp.com/* ' – rsanchez
@rsanchez, потому что в web.whatsapp.com это одностраничное приложение, поэтому не будет никакой подстраницы. –
Rsanchez является правильным; '*: // web.whatsapp.com *' является неверным [шаблон соответствия] (https://developer.chrome.com/extensions/match_patterns), '*: // web.whatsapp.com/*' является правильный - необходимо наличие косой черты ** **, путь '*' не является обязательным. Голосование закрывается как опечатка. – Xan