新規タブの空白ページでも動作するブックマークレットを作る
Chrome で動作確認した。
通常、ブラウザデフォルトの新規タブや about:blank
のような空白ページでは、ブックマークレットが動作しない。JavaScript を実行する HTML ページが存在しない扱いになるからだ。
しかし、Data URL で HTML ページを作ってやれば、一応空白ページを開いている状態でも JavaScript が実行できる。例えば以下のような文字列をブックマークするのだ。
data:text/html,<script>location.href = prompt('Please Input URL');</script>
この文字列を保存したブックマークレットを起動するとプロンプトが開き、プロンプトに入力された URL を location.href
で開く、という作りだ。
応用すれば色々作れそうだが、注意点としては、何か通常のページを開いている時、そのページの情報を取得したりはできないということ。document.URL
とか document.title
とかを参照しようにも、data:text/html
で新規 HTML ページを表示してしまっているので、その手前のページの情報は拾えないことに留意。