堀北真希うさぎ
主な作品
堀北真希うさぎ:平成初頭のボシュロムの製品コマーシャルを真似てコンタクトレンズをつけている場面と仮想CM動画

ページ案内

他人のフレームに自分のコンテンツを組込ませない。

他人のフレームに自分のコンテンツを組込ませない・目次。

フレームサイトの問題点。

フレーム式のサイトは余り奨められないものではあるものの、実際にはかなり多いと言えます。

フレームサイトで問題になるのは、フレームサイトからのリンクが正しく処理されるかと言うことです。

故意か過失かに拘らず、フレームの中にリンク先のコンテンツを組込んでしまう場合が多いようですが、米国ではこの行為は通常のリンクと見做さず、コンテンツの盗用と見做した判決が出たことがあるようです。

勿論、そのようなリンク集を組んでいるサイト制作者に修正を求めてもいいのですが、一番簡単な対策はこちら側でフレームに組込ませない対策を執ることでしょう。

JAVAスクリプトを用いれば、簡単にフレームを解除することが出来ます。

ここでは、その方法を解説します。

全てのHTML文書でリンクする外部スクリプトに書き加えておけば、簡単にフレーム破りが出来るようになります。

JAVAスクリプトが使えないと効果はありませんが…。

ここで解説する方法は、あくまでもJAVAスクリプトによるフレーム解除ですので、JAVAスクリプトが有効でないと意味がありません。

しかしながら、それでもコンテンツを盗用するつもりでフレームに組込む悪意あるフレームサイト制作者の意図を挫くには充分です。

なぜなら、一般の閲覧者は必ずJAVAスクリプトを無効にしてくれるとは限らないからです。

仮に悪意あるフレームサイト制作者が閲覧に際してJAVAスクリプト対応環境の使用を禁止することは出来ても、ウェブにおいてはそんな主張には強制力は無く、せいぜい無視されるのがオチです。

他人のフレームに自分のコンテンツを組込ませないスクリプトの実際。

他人のフレームにコンテンツを組込ませないスクリプトは以下のようになります。

if (top!=self) { top.location.href=self.location.href; }

たった一行ですが、強烈な効果があります。

スクリプトの処理の流れ。

非常に単純なもので、要は「文書がフレームに組込まれていたら、フレームを解除しろ」というだけです。

1. 文書がフレームに組込まれているかどうかの判断。

ここで、ウインドウ全体と自分自身を扱うために二つのオブジェクトを利用します。「top」と「self」です。

topオブジェクト。
topオブジェクトは、ウインドウ全体で読込んでいるリソースに関するオブジェクトです。
selfオブジェクト。
selfオブジェクトは、スクリプトを読込んでいるHTML文書自身に関するオブジェクトです。

もし、フレームに組込まれた状態で無いのなら、topオブジェクトはHTML文書自身と言うことになります。つまり、「top == self」となる筈です。

逆に、フレームに組込まれた状態では、topオブジェクトにはフレームセット文書(フレームの枠組みを設定した文書)が入り、HTML文書自身ではありません。つまり、「top != self」となります。

スクリプトのif文では、条件式に「top != self」とあります。

つまり「フレームに組込まれた状態であれば…」という条件判定を行っている訳です。

2. フレームを解除する処理。

さて、実際にフレームに組込まれている状態で実行されるスクリプトですが、これは単純に「top.location.href=self.location.href」だけです。

つまり、「topオブジェクトのlocation.hrefプロパティ」すなわち「ウインドウ全体で読込んでいるリソースのURL」に、「selfオブジェクトのlocation.hrefプロパティ」すなわち「自分自身のURL」をセットすることで、ウインドウ全体に自分自身を読込ませる、すなわちフレームセットを解消してしまうと言う訳です。

しらぎくのウェブサイト作成入門サイトマップ



marguerite.site@gmail.com