OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

親フレームのURLによって、条件分岐する方法。

  • すぐに回答を!
  • 質問No.160213
  • 閲覧数1442
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 66% (2/3)

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

質問者が選んだベストアンサー

  • 回答No.3
レベル10

ベストアンサー率 50% (72/143)

こんにちは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>

がんばってくださいね。
お礼コメント
nyaryome

お礼率 66% (2/3)

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

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

> 注意)どこから開かれたかは関係なくです。ですから、window.openerは使わないと思います。 > 本当に初心者ですので、<head></head>の間にいれる、スクリプトをそのまま書いてくれると嬉しいです。 opener がどうこう、と書いておいて、初心者とは言わせない :-) フレームの中に表示されているかどうかは、window.parent ...続きを読む
> 注意)どこから開かれたかは関係なくです。ですから、window.openerは使わないと思います。
> 本当に初心者ですので、<head></head>の間にいれる、スクリプトをそのまま書いてくれると嬉しいです。

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

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

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

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

お礼率 66% (2/3)

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


  • 回答No.2

nyaryomeさん、こんにちは。 window.parentまでたどり着いたのに、惜しいですね。 window.parentは、自分の親フレームを表します。 ここで親がいない場合、window.parentは自分自身を表すという不思議な結果になります。 自分自身とは、通常、window.selfで表します。つまり、window.parentがwindow.selfと一致すれば、親がいない独立 ...続きを読む
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などリファレンスとしては有名なので、手元に資料で詰まったときは、参照してみるのも良いかも知れません。
お礼コメント
nyaryome

お礼率 66% (2/3)

ありがとうございます。
>ここで親がいない場合、window.parentは自分自身を表すという不思議な結果に>なります。
へ~、勉強になりました。
それにスクリプトも解説付きでとっても分かりやすいです。
ただ、実は、
>もし、親フレームが特定のURLの場合だけ引っかけたいときは、
>「window.parent.location.href」の値で判定してください。
のやり方も知りたかったです・・・。
でも、本当にありがとうございました。
また何かあったらよろしくお願いします。サイトもチェックしておきます。
投稿日時 - 2001-10-31 20:43:11
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ