たった1行の JavaScriptで、元ページを iframe で表示する短縮サービスから URL を取り戻す方法

タイトルは「たった1行」って言いたかっただけだ。

URL 短縮サービスなどで、オリジナルのページへ転送せずに
そのサービスの URL を保ったまま
画面の上部にツールバーのようなものを表示して
元ページは <iframe /> に読み込むのがありますね。

あれはあれで便利な人には便利なんだと思いますが
どうも個人的な好みにはあわない。

試してみたこともあるんだけど、
本来のデザインにはないはずのものが追加されちゃうし
オリジナルのページへの直リンクにならないし
中には <meta /> 要素で堂々と著作権を主張するものまであって
これ何か違うなあと思ったのでやめました。

自分の書いた記事が
そういうサービス経由でシェアされているのを見ることもあるけど、
共有する価値があると認めてもらえるのは嬉しいし
それで不愉快な思いをするわけではないから
やっていただくのは一向に構いません。

でもまあせっかく一生懸命書いた記事なので
できれば別のサービスの一部に取り込まれるのではなく
独立したページとしてそこに在りたい。

ということで、表示と URL を取り戻すために
こういう JavaScript を埋めました。

<script type="text/javascript">
  if (window.top != window.self) {
    window.top.location = window.self.location;
  }
</script>

ウィンドウのトップがそのページ自身と違う場合に
トップの location を書き換える。

1行にするとこう。

<script type="text/javascript">if (window.top != window.self) window.top.location = window.self.location;</script>

対策を施した相手のサンプルとして出して申し訳ありませんが
例えば次のリンクで動作確認できると思います。

これもっと意地悪なこともできるんだけど、
そんなことしても誰も幸せにならないのでやめました。

関連エントリ

  • このエントリーをはてなブックマークに追加