はじめに
前回のブックマークレットの記事を書いている途中で、Safari で動作確認をした際に、どうも動かないなあと思ったので調べてみました。
Safari 限定です。確認した Safari のバージョンは14.1.2(15611.3.10.1.5, 15611)です。
動かない Bookmarklet
以下のブックマークレットは動きませんでした。開発ツールのコンソールでは、期待通り最初の alert();
が実行されますが、ブックマークレットにすると動きません。
javascript:(function(){alert();return;const s='a';var a='a'.replaceAll(s,'%'+'20').replaceAll('/','%'+'2F');})();
return;
が入っているので、そこまでは動いて欲しい気がしたのですが、動きません。
動くようにするには
どうも '%'
が問題になっているようで、以下のようにしたら動作しました。
javascript:(function(){alert();return;const P=String.fromCharCode(0x25);const P1=P+'20';const P2=P+'2F';const s='a';var a='a/'.replaceAll(s,P1).replaceAll('/',P2);alert(a);})();