aachyeeのブログ

備忘録的メモ。主にIT(プログラミング、電子工作)、DIY、アウトドアネタ。詳細はaboutを。

ブックマークレットに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...

なぜかよくわからないがブロックされず、無事解決した。