ブックマークレットにdata:text/htmlを使ってiframeを含む内容を記述するとブロックされる時がある。
Firefoxでブックマークレットにdata:text/htmlを使ってiframeを含む内容を記述すると、iframeが表示されない時がある。
正確にはhttpsのページを開いている状態で、そういったブックマークレットを実行すると起きる。ちなみにChromeでは起きない。
これが起きるとブラウザのコンソールに「混在アクティブコンテンツ “http://…” の読み込みをブロックしました」と警告が出る。
これを回避するには、URL欄の左のiマークをクリックして「このセッションのみ保護を無効にする」をクリックすれば良いが、いちいち面倒である。
そこでこれを回避する方法を探ってみた。最初にjavascriptのlocationで転送してみた。
data:text/html,<script>location='data:text/html,<html><body><iframe...
しかし同じくブロックされた。次にhtmlのmeta refreshを使ってみた。
data:text/html,<html><head><meta http-equiv='refresh content='0;URL=data:text/html,<html><body><iframe...
なぜかよくわからないがブロックされず、無事解決した。