オーバーレイの表示について対策する

画面をスクロールすると広告などがオーバーレイで表示されることがある。
正直に言うと迷惑だ。
FirefoxのプラグインBehind The Overlayを使っているが、除去したいものが画面の中央にあるなどの条件がある。

一方で、別のことで調べているとXPathを取得するブックマークレットにたどりつく。
Bookmarkletは昔からある技術のようだ。
この技術を使って対策する。
たどりついたサイトから拝借したコードを元にオーバーレイを消すJavaScriptのコードを作る。
javascript:var f;var s;function m(a){return function(e){e.preventDefault();if(f&&f.s){f.style.background=f.o}a(e.target)}}var c=m(function(e){e.remove();r()});var o=m(function(e){f=e;f.s=true;f.o=e.style.background;f.style.background="rgba(255,0,0,0.5)"});function r(){for(var i=0,n=s.length;i<n;++i){s[i].removeEventListener("click",c,true);s[i].removeEventListener("mouseover",o,true)}s=null}function a(){s=document.querySelectorAll('*');for(var i=0,n=s.length;i<n;++i){s[i].addEventListener("click",c,true);s[i].addEventListener("mouseover",o,true)}}a()
URLにこのコードを入れた新しいブックマークを作る。
次の順で実行する。
  1. 適当なサイトを閲覧する
  2. 作ったブックマークを選択する
  3. 閲覧しているサイトでJavaScriptのコードが動く
2021/07/15 22:35
タグ