読者です 読者をやめる 読者になる 読者になる

うならぼ

どうも。

スマホのブックマークレット登録にdataURIを使う

Javascript

ブックマークレットをブックマークするときに、PCのブラウザだったらjavascript:なリンクもそのままブックマークできることが多いですが、スマホはそうではないです。

ないので、textareaで表示してコピペさせるとか

<textarea>javascript:alert('JBP Yeah!')</textarea>

適当なURLのフラグメント部(#foobar)に含めておいてそれ以外を削ってもらう

<a href="#javascript:alert('JBP Yeah!')">リンク</a>

という手法がとられてきました。

で、今日思いついたのが data URI を使う方法。

<a href="data:text/plain,javascript:alert('JBP Yeah!')">リンク</a>

フラグメントを使う方法と同じ原理ですが、後で削る部分が短くて済むのと、内容がそのままブラウザに表示されるという利点があります。後者はプレビューになりますし、登録済みの人は既存のブックマークにコピペするのも簡単です。

…って形式にHatena::Letを変換するブックマークレットを書いたので、一例としてこのブックマークレットを貼ってみます。こんな感じ