0

Chrome拡張機能を開発しています。私のmanifest.jsonは次のとおりです。

"page_action": {
    "default_icon": {
        "19": "icons/icon19.png",
        "38": "icons/icon38.jpg"
    },
    "default_popup": "options.html"
},

私の拡張機能では、実際のWebページで実行/到達しようとするスクリプトを実行しようとしています。

// in options.html
chrome.tabs.executescript(null,{code:"alert('hello!');"}) ;

しかし、Chrome拡張デバッガーはこのエラーを出力します:

Uncaught TypeError: Object #<Object> has no method 'executescript'

content_scriptまたは実際のWebページのオプションの変更をすぐに反映したいと思います。

page_actionスコープで、「chrome」オブジェクトに到達するにはどうすればよいですか?

4

1 に答える 1

2

今のところ、大文字の「S」に変更executescriptしてみてください。executeScript

executeScriptそしてinsertCSS主に、生のコードではなく、jsまたはcssファイルを特定のタブに挿入するために使用されます。これらは、非常に特定の状況でそのコードを挿入する場合に使用されます。コードでは、コードを挿入するタブを指定しないidため、指定されたコンテキストでコードを挿入するだけです。メッセージパッシングでlikeを使用するchrome.tabs.queryと、実際のタブにコードを挿入できるはずです。

ポップアップのオプションを変更するときに、特定のタブのある種の変更に影響を与えようとしているようです。Page Action個人的にはjQuery、他の質問から渡されるメッセージを使用してメッセージを送信するときに、実際の変更を行うことをお勧めします。与えられたタブ。cssまたはをプログラムで挿入して試すこともできJavascriptますが、オプションを連続して変更すると、望ましくない結果になる可能性があります。

あなたがどのような変更を加えようとしているのか、正確な詳細はわかりません。それらが純粋な場合はcss、1つのスタイルシートをページに挿入し、変更したいもののクラスを切り替えて、シナリオごとにクラスを作成することができます。あなたがやろうとしていることをより詳細に説明するならば、私はより詳細な提案をすることができます。

于 2013-02-28T05:50:01.063 に答える