私はChrome拡張機能(そして正直なところはjavascript)を使い新しいもので、いくつかのDOM要素をページからコピーしてそれらを含むページを起動する単純なスクリプトを作成していますページの読み込み中の要素。それはすべて正常に動作しますが、データのソースとなるページはユーザーの入力に基づいて変更できます。つまり、何らかのフィルタを適用するとします。ボタンをクリックして拡張機能を実行できない
ページが最初に読み込まれたときにスクリプトを実行するのではなく、拡張アイコンをクリックして1回実行することができます。したがって、ユーザーはフィルタを適用し、そのページに対して拡張機能を実行し、新しいポップアップウィンドウで新しい情報を取得できます。もちろん、現時点では、ボタンのクリックで起こることすべてが、私は警告ボックスを取得することです
chrome.browserAction.onClicked.addListener(function(tab) {
alert("Hello! I am an alert box!!");
});
:background.jsで
"content_scripts": [
{
"matches": ["https://www.oddsmonkey.com/*"],
"js": ["content.js"],
"all_frames": true
}
],
"background": {
"scripts": ["background.js"]
:マニフェストファイルの
。
私は多くのことを見てきましたが、content.jsを実行するには、background.jsページ(これはボタンをクリックするために必要なことを理解しています)を取得する方法を見つけることができませんでした。私はメッセージングのコンセプトを見ていますが、私は何かを与える必要はありません、またはコンテンツのスクリプトから何かを得る必要はありません、私はそれを実行したい!
誰かが答えてくれることを願っています。あなたは[コンテンツスクリプト](https://developer.chrome.com/extensions/content_scripts)を必要とするWebページにアクセスするには
乾杯
、WebページのDOMにアクセスする方法[も参照のではなく、拡張ページDOM?](// stackoverflow.com/q/4532236)おそらく[JavaScript/jQuery DOMの変更リスナーはありますか?](// stackoverflow.com/a/39508954) – wOxxOm
@wOxxOm私はコンテンツを持っていますスクリプト(これは既に正常に動作しています)。ユーザーがボタンをクリックしたときに再び実行する必要があります。 DOMの変更を検出してメッセージを使用することは、非常に単純な作業であると私が疑うところはあまりにも複雑に思えます。 – reti
ユーザーが「browserAction」ボタンをクリックしてユーザーのやりとりが始まる*場合、コンテンツスクリプトには['chrome.tabs.executeScript()'](https://developer.chrome.com/extensions/)を挿入する必要がありますtabs#method-executeScript)を* manifest.json *の 'content_script'エントリの代わりに使用します。そうすれば、あなたのコンテンツスクリプトは、使用されるのを待つだけですべてのページに注入されてブラウザに負担をかけることはありません。 'chrome.tabs.executeScript()'を使うと、スクリプトは、[必要に応じてデータが渡された状態で]注入されたときに機能し始めることができます(http://stackoverflow.com/a/40815514/)。 3773011)。 – Makyen