0

Gmailの作成ページに挿入するスクリプトを作成したいと思います。

これまでのところ、私はこのurl-patternを持っています:["*://mail.google.com/*"]。Gmailの読み込み時にスクリプトは正常に挿入されますが、その後、受信トレイや作成などのリンクをクリックしてもスクリプトは再挿入されません。["*://mail.google.com/*compose"]簡単にできると思っていたのですが、違います。

このパターンはおそらく私が得ることができる限りのものであり、ページのその部分がいつリロードされるかをチェックするリスナーを作成する必要がありますか?

作成ページがいつ読み込まれるかを判断する最も簡単な方法は何ですか?

4

1 に答える 1

2

コンテンツスクリプトは、ページが実際に読み込まれたときにのみ実行されます。
特定のハッシュのコードを実行する場合は、ハッシュなしのURLにスクリプトを挿入し、を使用しhashchangeて変更を検出します。

function checkHash() {
    if (/^#(compose|drafts)\b/.test(location.hash)) {
        // Do whatever you want
    }
}
window.addEventListener('hashchange', checkHash);
checkHash();

ロケーションハッシュを監視する代わりにsetInterval、目的の要素がDOMに存在するかどうかを継続的にチェックするために使用する方が効果的な場合があります。これは、特定のDOMノードの値を読み書きする場合に特に便利です。

于 2012-12-01T16:18:21.633 に答える