# はじめに
ほんの小さな記事ですが、自分にとっては、目にうろこの現象を確認できました。
これで、つぎからプラグインを作成するときに役立ちそうです。
# その現象は
以前から、プラグインを実行しているときに、content.jsが何回もリロードされていることは、確認していました。しかし、その時は、別に気にしていませんでした。
しかし、今回は、どうしてもその原因を突き止めたくて、テストプロを作成しました。
以下がそのプログラムです。
//content.jsファイル
//ここで、location.hrefをチェックして
console.log(location.origin);
if(location.origin.indexOf("ameba")!==-1){
//テスト
function xxx(){
//alert("xxx()コール");
console.log("xxx()コール");
}
//alertY()は、async/awaitなので、先に実行して、次にxxx()を実行する
async function alertY(msg,n){
await console.log("alertY()");
}
//このケースは、どちらが先に実行するか
alertY("alertYのテスト",50);
xxx();
}
以下は、デバッガーのコンソール出力ですが、必要な情報は、上の3つです。その下の5つは、不要です。
しかし、自動でリロードされています。この時のタブは、アメバだけですが、ブラウザーの方で、5つのurlでリロードされていました。普段は、見ることもないurlがリロードされています。
# 不要なリロードを除外するために
そこで、location.originで、"ameba"のタブのみ処理するように、テストコードの3行目に、そのチェックをいれました。
# ちなみに、AIアシスタントに聞いてみました。
質問内容は、
「ちょっと、驚きでした。ページがタブ以外のurlで、いろいろリロードされていました。」
です。
AIアシスタント
AIが回答を生成中AIアシスタント
ブラウザの動きがふだんと違うと、ちょっと不安になりますよね。
🔍 いま起きた状況の整理
「ページがタブ以外のURLで、いろいろリロードされていた」というのは、例えば次のような状態だった可能性があります。
見ているページとは別のURLが、勝手に何度も読み込み直される
広告や追跡用のスクリプトが、バックグラウンドで別URLを読み込んでいる
拡張機能やサイトのバグで、別のページへのアクセスやリロードが繰り返されている
多くの場合は広告や解析用の通信ですが、挙動が異常に激しい場合は、拡張機能や怪しいサイトが原因のこともあります。
🧭 確認してほしいポイント
ブラウザの履歴とタブ
履歴を開いて、身に覚えのないサイトに大量アクセスされていないか確認する
タブは一つだけなのに、履歴に別URLが連続で並んでいないかを見る
拡張機能やアドオン
最近入れた拡張機能があれば、一度オフにして様子を見る
シークレットウィンドウやプライベートモードで同じページを開き、現象が出るか確認する
セキュリティ対策
セキュリティソフトやブラウザの「安全診断」機能があれば、簡易スキャンをしてみる
気になるページはブックマークせず、アドレスバーの鍵マークやURL表記をよく確認する
🛠 当面の対処の一例
そのページからはいったん離れる
ブラウザを終了し、再起動して同じサイトにアクセスしても再現するか試す
それでもおかしければ、キャッシュとCookieを削除してから、もう一度アクセスを試す
今回の現象は、当該ページ内にある広告などをブラウザーがリロードしていたと思われます。
# あとがき
今回のテストで、わかったことは、なぜ、何回も、content.jsがリロードされているかがわかりました。結構、いろいろなurlをブラウザーがリロードしていたことです。
そのため、必要なurlのみ処理したいときは、やはり、location.originで、チェックすることが必要だということです。
あらためて、再確認しました。
