我不了解Google Chrome扩展程序。请帮忙。

时间:2011-08-20 07:46:39

标签: javascript google-chrome google-chrome-extension

我想做一些似乎应该相当简单的事情,但我无法让它发挥作用。

我想要它做的就是当点击弹出窗口中的按钮时我想将单词“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();
        }
    }
);

我一直在阅读文档,但他们似乎跳过了很多东西。如果有人能解释为什么这不起作用,我会永远感激。

1 个答案:

答案 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"]
    }]
}