10

基本的には、Google のドキュメントに従って、小さな Chrome 拡張機能を実行しようとしています。拡張ボタンがクリックされるたびにスクリプトを挿入したいと思います。これはこれまでの私のマニフェストです:

    {
  "name": "Example",
  "manifest_version": 2,
  "version": "1.0",
  "permissions": [
    "tabs"
  ],
  "description": "My Chrome extension.",
  "browser_action": {
    "default_icon": "icon.png"
  },
   "background": {
    "scripts": ["background.js"]
  }
}

そして、これは私の background.js です:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(tab.id, {code: "content_script.js"});
});

問題は、そのような単純な方法で試しても content_script が起動されないことですalert("aaa");

私が間違っていることを教えてください。私はそれを理解することはできません。

4

2 に答える 2

14

ページでコンテンツ スクリプトを実行するには、マニフェスト ファイルで正しいホスト権限を要求する必要があります。

ブラウザのアクション ボタンのクリック時にコンテンツ スクリプトを挿入したいので、activeTabパーミッションを要求するだけで十分です。さらに、許可をドロップして、許可警告tabsの数をゼロに減らすことができます!

{
  "name": "Example",
  "manifest_version": 2,
  "version": "1.0",
  "permissions": [
    "activeTab"
  ],
  "browser_action": {
    "default_icon": "icon.png"
  },
   "background": {
    "scripts": ["background.js"]
  }
}

(activeTabアクセス許可はChrome 26 で導入されました。Chrome 25 以前をサポートする必要がある場合は、マニフェスト ファイルに*://*/*またはアクセス許可を追加してください)。<all_urls>

注: にコールバックを追加するとchrome.tabs.executeScript、便利なエラー メッセージが に表示されますchrome.runtime.lastError.message

URL「http.....」のコンテンツにアクセスできません拡張マニフェストは、このホストにアクセスする許可を要求する必要があります。

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.executeScript(tab.id, {
        file: "content_script.js"
    }, function() {
        if (chrome.runtime.lastError) {
            console.error(chrome.runtime.lastError.message);
        }
    });
});
于 2013-06-09T17:26:17.587 に答える
6

ロブの修正に加えて、使用する必要があります{file: "content_script.js"}

于 2013-06-09T18:45:57.810 に答える