[追記]スクリプトでスクリプトを停止させることの難しさ。

最終更新日

javascript code

サイト上で実行されるプログラムについて同意を確認するためのプログラム」という記事で、MutationObserverを使ってscriptタグがDOMに追加させるタイミングでremoveを行うという力業を試してみたのですが、どうにも完全に実行を停止するのは難しいようです。
もともと、本来はheadタグ直下で実行すべきコードを記事文中内で実行しているため、記事以前に記述されているscriptに関しては実行を止めることができていなかったのですが、ほかにもasync属性が設定されているスクリプトに関してはこの方法では実行を止めることはできないようです。

また、一度ページが表示されるとキャッシュが残るため、2回目にページを表示した際に正しく動作しないようです。

サードパーティのスクリプトをフックして実行を制御するのはなかなかに難問でした。

[追記]検証ページつくってみました。

※リンク先の検証ページに飛ぶ前に開発者ツールのコンソールを開いておくと手間が一つ減ります。

検証ページ

検証ページサンプルコード

検証結果

  • Chromeは概ね狙い通りに動いている。
  • Safariは、アドセンスのコードが「停止」はできるが、「再実行」できないっぽくて「OK」が押されても広告が表示されない。
  • Firefoxは、まったく停止できていないので、この方法ではスクリプトを制御できない。
  • IE, Edgeは試していない。