具体的に書きますと、親フレ-ム「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で質問しましょう!

このQ&Aと関連する良く見られている質問

Q

<html><head>
<style type="text/css">
<!--
#loading {
position: absolute;/* ロード中に表示する文字列の絶対位置の設定(必須) */
top: 35%;/* 画面の上部からの文字の位置(必須) */
left: 45%;/* 画面の左側からの文字の位置(必須) */
font-style: italic;
font-family: Verdana;
}
-->
</style>
<script type="text/javascript">
<!--
document.write('<style type="text/css">#doc { visibility: hidden; }<\/style>');
document.write('<div id="loading">Now Loading...<\/div>');// ロード中に表示する文字列

var i = 0;
var ele = document.getElementById("loading");
var str = ele.firstChild.data;

function char_loop(ele, str) {
ele.innerHTML = str.substring(0, i++ % str.length + 1);
}
setInterval("char_loop(ele, str);", 100);

window.onload = function() {
ele.style.display = "none";
document.getElementById("doc").style.visibility = "visible";
}
// -->
</script>
</head>
<body>
<span id="doc">
ここに本文を表示
</span>
</body>
</html>


上のような、NewLoading... を作ってみたんですが、
画像のように表の内枠だけ残ってしまいます。
どうにかならないですかね。

ちなみにこの画像のURLは、↓こちらです。
http://shibaken.cool-biz.net/contents02.html

お願いします。

<html><head>
<style type="text/css">
<!--
#loading {
position: absolute;/* ロード中に表示する文字列の絶対位置の設定(必須) */
top: 35%;/* 画面の上部からの文字の位置(必須) */
left: 45%;/* 画面の左側からの文字の位置(必須) */
font-style: italic;
font-family: Verdana;
}
-->
</style>
<script type="text/javascript">
<!--
document.write('<style type="text/css">#doc { visibility: hidden; }<\/style>');
document.write('<div id="loading">Now Loading...<\/div>');// ロード中に表示...続きを読む

Aベストアンサー

当方の環境 Firefox (3.6, linux) で見たところ問題なく表示されたのでよくわからないのですが、 <script> ... </script> を <body> と <span> の間に入れるのがよいと思います。(document.write() を含む <script> は出力結果を埋め込みたい場所に書く。)

あと関係ないことですが、
中央に表示 text-align: center; width: 100%;
<div id="doc"> ... </div>が普通だと思います。

Q内と後のfunctionの違いは?

初歩的な質問かもしれませんが、

<HEAD><SCRIPT>
function・・・・・・・
</SCRIPT></HEAD>
の中に、記述するfunctionと、

</HEAD>
<SCRIPT>
function・・・・・・・
</SCRIPT>
のように</HEAD>後に、記述するfunctonの
違いはなんでしょうか?
働きとは役目とか、動きが違うのでしょうか?
よろしくお願い致します。

Aベストアンサー

<HEAD>パートと<BODY>パートに書いたちがいによって動き
がちがうということはないでしょう。
しかし、<HEAD>パートに置いても<BODY>パートに置いても
どちらでもよいというわけではありません。
説明がながくなりますので、こちらにUPしておきました。
http://www.geocities.jp/b1aise1623/prog/js/tips/701346/func.htm

Qとどっちに入れる?どっちも入れる??

よくJavaScriptで、<head></head>の間に書きこむのと、<body></body>の間に書くのがありますが、どう違うのでしょうか。<head></head>に書くだけのが大半で、たまに両方書くのがあるのですが、毎回疑問に思ってました。お願いです。教えてくださいまし。

Aベストアンサー

どのような場合に…というのがはっきりしないのであいまいな回答になっちゃいますが、どっちの場合もあります。

functionだとheadの中に書いてますが、動的に文書の内容を書き出したりするような、最終的な命令部分はbodyの中に書いてますね。headの中で定義した関数をbodyの中で呼び出したりしますから。

Q間へスクリプト結果の表示

下記のスクリプト(現在のURL表示)を<a href>~</A>の間に表示させることは可能でしょうか。


<スクリプト>
<SCRIPT LANGUAGE=javascript>
<!--
document.write( location.href );
// -->
</script>


<a href="───ここに───;sort=up1">▼</A>
<a href="───ここに───;sort=down1">▲</A>

Aベストアンサー

方法はいろいろあると思いますが、たとえば、

<a href="#" id="ancU">▼</a>
<a href="#" id="ancD">▲</a>
<script type="text/javascript">
<!--
var thisLoc = window.location.href;
document.getElementById("ancU").src = thisLoc + ";sort=up1";
document.getElementById("ancD").src = thisLoc + ";sort=down1";
// -->
</script>

または、

<script type="text/javascript">
<!--
var thisLoc = window.location.href;
document.write('<a href="' + thisLoc + ';sort=up1">▼</a>');
document.write('<a href="' + thisLoc + ';sort=down1">▲</a>');
// -->
</script>

方法はいろいろあると思いますが、たとえば、

<a href="#" id="ancU">▼</a>
<a href="#" id="ancD">▲</a>
<script type="text/javascript">
<!--
var thisLoc = window.location.href;
document.getElementById("ancU").src = thisLoc + ";sort=up1";
document.getElementById("ancD").src = thisLoc + ";sort=down1";
// -->
</script>

または、

<script type="text/javascript">
<!--
var thisLoc = window.location.href;
document.write('<a href="' + thisLoc + ';sort=up1">▼</a>');
d...続きを読む


人気Q&Aランキング

おすすめ情報