2

私は現在、そうするように求められたときに拡張機能が通知を表示するようにしようとしています。

アイコンがクリックされると、background.js がページに対してスクリプトを実行します。これは私の background.js ファイルがどのように見えるかです:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript(null,{file: "buy.js"});
  }
);

chrome.extension.onRequest.addListener(
  function (request, sender, sendResponse) {
    var notify = webkitNotifications.createNotification(
      'face.png',
      'Item Sniped!',
      'Item sniper sniped an item!'
    );
    notify.show();
  }
);

はい、manifest.json ですべてのアクセス許可を設定しました。私のマニフェストファイル:

{
   "manifest_version": 2,
   "name": "Sniper",
   "version": "1.5",
   "description": "Sniper",
   "browser_action": {
     "default_icon": "face.png",
     "default_title": "Limited Sniper"
   },
   "background": { "scripts": ["background.js"] },
   "permissions": [
     "notifications",
     "tabs",
     "http://*/*"
   ]
}

background.js ファイルにリスナーが必要であることはわかっていますが、buy.js (実行されるスクリプト) から background.js にリクエストを送信して通知を行うことはできますか?

4

1 に答える 1

3

はい。コンテンツ スクリプトは何もできません。ここを参照

そのため、通知を行うには background.js にリクエストを送信する必要があります。また、通知にアイコンがある場合は、忘れずに manifest.json に登録してください。

 "web_accessible_resources":["face.png"]

ただし、コンテンツ スクリプトにはいくつかの制限があります。chrome.* API を使用する (chrome.extension の一部を除く) 拡張機能のページで定義された変数または関数を使用する Web ページまたは他のコンテンツ スクリプトで定義された変数または関数を使用する

于 2013-03-04T02:53:35.280 に答える