フレーム内に表示されるのを防ぐスクリプト
自分のページが誤ってフレーム内に表示されてしまうのを回避する方法として、 ページ自体に「このページはフレーム内部で表示してはいけません」という指示を埋め込む方法があります。 これを使えば、フレーム内部で表示されようとしたときには、強制的にフレームを解除できます。
実現方法はとっても簡単で、次のたった3行を記述するだけです。
(JavaScriptとしては真ん中の1行のみ)
<script type="text/javascript"><!-- if( self != top ) { top.location = self.location; } // --></script>
上記の3行を、HTML内に記述するだけで完了です。(4行に見えるかもしれませんが、真ん中の強調文字部分は1行です。)
※記述場所は、HTML内部のどこでも構いませんが、head要素内( <head>~</head> の内側)に記述しておくのが良いでしょう。
このJavaScriptを記述しておくだけで、そのページはフレーム内部には表示されません。 フレーム内部に表示しようとしても、必ずフレームは強制的に解除され、単独で表示されます。
※閲覧者のブラウザで JavaScript機能がOFFに設定されていれば機能しませんので、「絶対」というわけではありませんが。
この方法を使えば、自分のサイト内のページが、他人のフレーム内に表示されてしまうのを防ぐことが可能です。 また、自分のサイト内でも、HTML記述ミスで、フレーム内で表示させたくないページをフレーム内に表示してしまうことも防げます。
「このページは絶対にフレーム内部に表示されてはいやだ!」というページに、お使い下さい。
スクリプトの解説
上記のスクリプトの各部分の意味を簡単に説明しておきます。
- ■if( self != top )
- → もし自分(self)が最上階層(top)でなかったら
- ■top.location = self.location
- → 最上階層の位置(top.location)を自分の位置(self.location)に変更
……という意味になります。
自分のページが最も外側のフレームに表示されていなければ(=自分のページが単独で表示されていなければ)、自分のページを最も外側に表示させる(=自分のページを単独で表示させる)、という意味です。
おわりに
今回は、自分のページが誤ってフレーム内部に表示されてしまうのを自動的に防ぐ方法をご紹介致しました。
ぜひ、ご活用下さい。
また、以下の関連記事・リンク集もぜひご参照下さい。
【関連記事】