Schwarz Lanzenreiter forward

Used Frame Page

フレームを使ったページで

Netscape 2 以上で動作


自サイト(ページ)が他のサイトのフレームの中に 入ってしまうのを防ぐ

以下を HEAD 内のなるべく上の方に記述しておくだけ。

Source

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

[PageTop] [Back]

フレームの中に入っていて欲しいページは

フレームを使ったサイトで考えるのは フレーム内の HTML を直接リクエストされたときではないでしょうか。 その性質上フレームの中に入っていて欲しいページもあるでしょう。 そこで、JavaScript を使ってフレームの中に入れてやる、というのがこのスクリプト。

まずフレームの中に入るページ全てのHEAD 内のなるべく上の方に以下を記述する

<script type="text/javascript" src="**.js"></script>

**.js の中身は

if(top == self){
  iPath = "http://127.0.0.1/~kerry/index.html" ;
  location.href = iPath + "?" + location.href;
}

iPath = "http://127.0.0.1/~kerry/index.html";
の "http://〜〜.html" は親フレーム(本来表示されるフレーム)までのフルパス。 無論 /~kerry/index.html というシステム上のパスでも可。

親フレームには以下を書く。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
    "http://www.w3.org/TR/html4/frameset.dtd">
<html lang="ja">
<head>
・・・・・・・・・・
</head>
<script type="text/javascript"><!--
  // 中身のページが固定されているフレーム
  document.write(
    '<frameset cols="*,*">' +
    '<frame src="**.html" name="**">' );

if(location.search){
  query = location.search;
  if(query.charat(0) == "?") query = query.substring(1);
  // 中身が変わるフレーム
  document.write(
    '<frame src="' + query + '" name="**">');
}else{
  // デフォルトで表示するページ
  document.write(
    '<frame src="**.html" name="**">');
}
// -->
</script>

<noscript>
<frameset cols="*,*">
  <frame src="**.html" name="**">
  <frame src="**.html" name="**">
</noscript>
<noframes>
・・・・・・
</noframes>
</frameset>
</html>

当然のことながら以上は全て各自の環境にあわせて書き直してください。

[PageTop] [Back]

IFrame の場合

これも基本的には Frame の場合と同じ。

まずフレームの中に入るページ全てのHEAD 内のなるべく上の方に以下を記述する

<script type="text/javascript" src="**.js"></script>

**.js の中身は

if(top == self){
  iPath = "http://192.168.0.1/~kerry/index.html" ;
  location.href = iPath + "?" + location.href;
}

IFrame があるページでは IFrame 要素のすぐ下辺りに JavaScript を記述しておく。 間違って IFrame 要素より前に書くとエラーとなり動かない。

<iframe src="menu.html" name="iframeName"></iframe>
<script type="text/javascript"><!--
fName = "iframeName"; // iframe の name 属性でつけたユニークな名前
if(location.search && window[fName])
    window[fName].location.href = location.search.substring(1);
// -->
</script>

[PageTop] [Back]

Copyright(C) 2002-2004 kerry.