スマホのブックマークレット登録にdataURIを使う
ブックマークレットをブックマークするときに、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を変換するブックマークレットを書いたので、一例としてこのブックマークレットを貼ってみます。こんな感じ。