0

確かに、この質問はあまりにも狂っていますが、解決策が見つかりません。私のコードのChrome APIをリッスンイベントに使用できません

詳細:

manifest.jsonを

"content_scripts": [{ 
    "js": [ "ct.js" ], 
    "matches": [ "<all_urls>" ] 
}], 
"permissions": [ "management","storage","proxy", "*://*/*" ], 

ct.js

chrome.management.onInstalled.addListener(function (info) { 
    console.info(info); 
}); 

chrome.management.onEnabled.addListener(function (info) { 
    console.info(info); 
}); 

私はコンソール

ct.js:58 Uncaught TypeError: Cannot read property 'onInstalled' of undefined 
でエラー結果を得ました

私は2日前からこだわっているコンソール

{ 
    app: Object 
    csi: function() 
    loadTimes: function() 
    runtime: Object 
    webstore: Object 
    __proto__: Object 
} 

chrome変数を記録します。私のための援助は私の人生にとって大きな助けとなります。

私の悪い英語を申し訳ありません。見てくれてありがとう。

答えて

2

chrome.management.* API(または、その意味ではchrome.runtime.onInstalledイベント)from a content scriptを使用することはできません。それはあまり特権のない文脈です。

ただし、コンテンツスクリプトにはいくつかの制限があります。彼らはできません:。

  • 使用クローム*のAPIは例外で:
    • 拡張子(のgetURL、inIncognitoContext、最終エラー、onRequest、のsendRequest)
    • 国際化
    • ランタイム(、getManifestを接続し、 getURL、ID、のonConnect、のonMessage、のsendMessage)
    • ストレージ

対応するには、backgroundまたはeventスクリプトが必要です。それに反応したり、コンテンツスクリプトから何かを開始したりする必要がある場合は、バックグラウンドのmessagingが答えです。

関連する問題