プロが教えるわが家の防犯対策術!

具体的に書きますと、親フレ-ム「fr.html」のフレーム内で「A.html」を開いた場合と、それ以外の方法で「A.html」を開いた場合で、開いた瞬間に飛ばすページを分けたいのです。
注意)どこから開かれたかは関係なくです。ですから、window.openerは使わないと思います。
本当に初心者ですので、<head></head>の間にいれる、スクリプトをそのまま書いてくれると嬉しいです。
結構急ぎなので、(みなさんもそうでしょうが・・・)
よろしくお願いします。

A 回答 (3件)

こんにちはnyaryomeさん、xruzです。


こんな感じでよかったでしょうか。

<html>
<head>
<title>a</title>
</head>
<script language="JavaScript">
<!--
if(((parent.location).toString()).indexOf("fr.html")<0) {
this.location.href="index.html"; // 親URLにfr.htmlが無かったとき
} else {
this.location.href="ok.html"; // 親URLにfr.htmlが有ったとき
}
//-->
</script>
<body>
a.html
</body>
</html>

がんばってくださいね。
    • good
    • 0
この回答へのお礼

もの凄くありがとうございます。
ハイ。僕が求めていたのはこれです。
>if(((parent.location).toString()).indexOf("fr.html")<0)
このような方法があるんですか。勉強不足でした。
もう少しスクリプトと記述の仕方を覚えないとダメみたいですね。。
ですが、また、どうしても分からない事が出てきたらそのときは
よろしくお願いします。
今回は本当にありがとうございました。
テストしてみて、上手く動作すれば締め切らせていただきます。

お礼日時:2001/10/31 20:52

nyaryomeさん、こんにちは。



window.parentまでたどり着いたのに、惜しいですね。
window.parentは、自分の親フレームを表します。
ここで親がいない場合、window.parentは自分自身を表すという不思議な結果になります。
自分自身とは、通常、window.selfで表します。つまり、window.parentがwindow.selfと一致すれば、親がいない独立したウィンドウ、一致しなければ、親フレームありとなります。
後は、この結果に基づいて、URLを変更すれば良くなります。

よって、こんな感じです。
<html>
<head>
<script laguage="JavaScript">
function func( )
{
  var newURL = ""; // 移動先URL
  
  // 親は自分か
  if (window.parent == window.self)
  {
    newURL = "http://www.yahoo.co.jp" ;
  }
  // 自分ではなく他人です。
  else
  {
    newURL = "http://www.yahoo.com" ;
  }
  // ジャンプ
  location.href = newURL ;
  // 何ミリ秒後かに移動したければ、下の方法を
  // window.setTimeout( "location.href = '" + newURL + "'", 10000 );
}
</script>
</head>
<!-- この画面を開いたとたんに関数funcを呼び出します -->
<body onload="func( )">
</body>
</html>

もし、親フレームが特定のURLの場合だけ引っかけたいときは、「window.parent.location.href」の値で判定してください。
以下のURLは、HTML,JavaScriptなどリファレンスとしては有名なので、手元に資料で詰まったときは、参照してみるのも良いかも知れません。

参考URL:http://tohoho.wakusei.ne.jp/www.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。
>ここで親がいない場合、window.parentは自分自身を表すという不思議な結果に>なります。
へ~、勉強になりました。
それにスクリプトも解説付きでとっても分かりやすいです。
ただ、実は、
>もし、親フレームが特定のURLの場合だけ引っかけたいときは、
>「window.parent.location.href」の値で判定してください。
のやり方も知りたかったです・・・。
でも、本当にありがとうございました。
また何かあったらよろしくお願いします。サイトもチェックしておきます。

お礼日時:2001/10/31 20:43

> 注意)どこから開かれたかは関係なくです。

ですから、window.openerは使わないと思います。
> 本当に初心者ですので、<head></head>の間にいれる、スクリプトをそのまま書いてくれると嬉しいです。

opener がどうこう、と書いておいて、初心者とは言わせない :-)

フレームの中に表示されているかどうかは、window.parent がキーになるんじゃ
ないか、と。どうやったら、エラーを捕まえられるかなあ。

# 本当に、思い付かない…

ああっ、帰りの電車に間に合わないっ!
というわけで、スクリプトは勘弁。

この回答への補足

とりあえず、回答ありがとうございます。
window.parentについては、JavaScript辞典に載ってたもので・・・
(理屈がよく分からないので、完全な写し書きしかできません、、、)
「if」とか「window.parent」とか「=」とか「fr.html」
とかを、どうやって書けばよいか分かりません。
何方か詳しい説明お願いいたします。

補足日時:2001/10/31 00:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!