我想做一些似乎应该相当简单的事情,但我无法让它发挥作用。
我想要它做的就是当点击弹出窗口中的按钮时我想将单词“Hello”记录到控制台。目前没有任何事情发生。没有错误消息。什么都没有。
这是我的manifest.jason文件
{
"name": "Content Script",
"version": "1.0",
"description": "Experiments with content scripts.",
"permissions": [
"tabs", "http://*/*", "https://*/*"
],
"browser_action": {
"default_icon": "icon.png",
"popup": "popup.html"
}
}
这是我的popup.html
<h1>Hello</h1>
<script>
function changeField() {
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {"code": "sayHello"});
});
}
</script>
<button onclick="changeField();">Click</button>
这是我的contentscript.js
function sayHello() {
console.log("Hello");
}
chrome.extension.onRequest.addListener(
function(request, sender, response) {
if(request.code == 'sayHello') {
sayHello();
}
}
);
我一直在阅读文档,但他们似乎跳过了很多东西。如果有人能解释为什么这不起作用,我会永远感激。
答案 0 :(得分:0)
您没有将content script
注入console
所在的网页。
将content_scripts
段添加到您的manifest.json
文件中。
Chrome扩展官方网站上有a reference of manifest.json file。
{
"name": "Content Script",
"version": "1.0",
"description": "Experiments with content scripts.",
"permissions": [
"tabs", "http://*/*", "https://*/*"
],
"browser_action": {
"popup": "popup.html"
},
"content_scripts":[{
"matches":["http://*/*"],
"js":["content_script.js"]
}]
}