WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:自動ジャンプで全ページ対象にする方法

0:[投稿] HP初心者 [2003/01/30 11:38 ][環境:IE6 Windows2000]

はじめまして。
自動ジャンプをする際に、全ページを対象にする方法はないでしょうか?

リンクが張られている相手先から自分のHPへジャンプしてくるとき、相手先のフレーム内で表示されるのを止め、ページ全体に表示したいのです。

次の方法を試して見ましたが、動作しませんでした。

<base target="_top">
<META http-equiv="Refresh" content="0;URL=xxxxxxx">

なにとぞ、ご教授をお願い致します。


1:[回答] ごだっち [MAIL] [2003/01/30 12:29 ]

こんな感じで良いかな?
<html>
<head>
<script>
<!--
var flg=0;
var tlc = window.top.location;
var slc = window.self.location;
if(tlc==slc){flg=1;}
else if(tlc.toString()){flg=1;}
else{flg=0;}
function chk(){
    if(flg==0){window.top.location.href=slc;}
}
//-->
</script>
</head>
<body onload="chk();">
ページのコンテンツ
</body>
</html>


2:[完了] HP初心者 [2003/01/30 14:15 ]

早速のお返事ありがとう御座います。

ご教授頂いた内容でOKでした。
お忙しい中のお返事、ありがとう御座いました。


3:[回答] しげる [2003/01/30 14:21 ]

>>1 ごだっち氏

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

これだけでもいいと思います。

>>0 HP初心者氏

クライアント側が JavaScript を無効にしている場合は動作しませんので、ご注意を。


4:[回答] ごだっち [MAIL] [2003/01/30 14:28 ]

いや、自サイト内でフレームを使っていた場合に、top!=selfだけを条件にしてあったらマズいっしょ?

どっちかっていうと、他サイトのフレーム内に表示されるのを避けたいっていう要望だったから、敢えてああいう変則?な、アクセス不能だったら他サイトとみなす、っていう方式を使ったわけなんだな。


5:[回答] ween [2003/01/30 15:45 ]

>>4
> アクセス不能だったら他サイトとみなす、っていう方式
ブラウザの設定次第ではエラーダイアログが出ることになります。
onerror イベントや try-catch 文を噛ませて回避した方が無難かと。

var tlc = window.top.location;
var slc = window.self.location;
onerror = Function('tlc.href=slc;return true;');
if (tlc!=slc) tlc.toString();


6:[回答] ごだっち [MAIL] [2003/01/30 16:45 ]

おぉ、仰るとおりでした。
ありがとうございます。
このほうが動作が綺麗で良いすね。


7:[質問] HP初心者 [2003/01/30 19:24 ]

度々申し訳ありません。

最終的には、次のような書き方で宜しいのでしょうか?

var flg=0;
var tlc=window.top.location;
var slc=window.self.location;
onerror=Function('tlc.href=slc;return true;');
if(tlc!=slc){tlc.toString();}
if(tlc==slc){flg=1;}
else if(tlc.toString()){flg=1;}
else{flg=0;}
function chk(){
   if(flg==0){window.top.location.href=slc;}
}

よろしくお願い致します。


8:[回答] ごだっち [MAIL] [2003/01/30 22:31 ]

いえ、weenさんの教えてくださった分だけで、必要充分な処理が行われています。
ですので、ヘッド内の<script>〜</script>の中に、weenさんが書いてくださった4行を記述するだけで良いです。
ボディ部のオンロードなども不要ですね。


9:[回答] しげる [2003/01/31 10:10 ]

>>4 ごだっち氏

あ、確かにそうですね。
すいません、そこまで頭が回っていませんでした。


10:[完了] HP初心者 [2003/01/31 10:28 ]

皆様、お忙しい中のご教授ありがとう御座いました。
今後とも宜しくお願い致します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World