Я не понимаю расширения Google Chrome. Пожалуйста помоги. - PullRequest
0 голосов
/ 20 августа 2011

Я хочу сделать что-то, что кажется довольно простым, но я не могу заставить его работать.

Все, что я хочу сделать, - это когда кнопка во всплывающем окне нажата, и я хочу записать слово «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>

Вот мой contentcript.js

function sayHello() {
    console.log("Hello");
}


chrome.extension.onRequest.addListener(
    function(request, sender, response) {
        if(request.code == 'sayHello') {
            sayHello();
        }
    }
);

Я читал документы, но они, кажется, пропускают многие вещи. Если бы кто-то мог объяснить, почему это не работает, я был бы вечно благодарен.

1 Ответ

0 голосов
/ 20 августа 2011

Вы не добавили свой content script на страницу, на которой console живет. Добавьте сегмент content_scripts в свой файл manifest.json.

Существует ссылка на манифестФайл json на официальном сайте расширения Chrome.

{
    "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"]
    }]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...