ホテルを選ぶとき、これだけは譲れない条件TOP3は?

表題のとおり、フレーム内へのリンクを禁止したく
<script language="JavaScript">
<!--
if (parent.location.href != window.location.href)
parent.location.href= window.location.href;
//-->
</script>
を<head>と</head>の間に入れてみましたが、「書き込みができません。」とエラーになります。
どこか間違っているのでしょうか。

A 回答 (7件)

>他人のページのフレーム内に自分のページを表示させたくないということです


これだけが目的であれば、自分自身のアドレスをYahooやGoogleなど、別ページに飛ばす方法ではだめですか?
あなたのサイトを訪れようとした人には少し申し訳ない方法になってしまいますが…。

// 親ウィンドウが存在する
if (window.parent) {
// アドレスが読み込めない(異なるホスト)か、
// 自分のサイトではない
if (!window.parent.location || parent.location.href != window.location.href) {
// 自分のページは他のウィンドウで開いておく
window.open("自分のアドレス");
// フレーム内の自分のページは、別のページに飛ばしてしまう
window.location.href="Yahooなどのアドレス";
}
}
    • good
    • 0

#4です。



ローカルでは動作したので書き込みましたが…

質問者様の現象は異なるホスト間のページをJavaScriptで操作しようとしているために発生していると思われます。

残念ながら自分には解決策を提示することが出来ません。
大変失礼致しました。

参考URL:http://chaichan.hp.infoseek.co.jp/qa4000/qa4475. …
    • good
    • 0

>無限ループの様に本来のページを読み込み続けています。


ああっ!
そうですね。無限ループしますね。
if (parent.location.href == undefined) //上位フレームが無いとき
window.location.replace('本来のトップページのアドレス');
ではどうでしょうか?
    • good
    • 0

<head>


<script language="JavaScript">
<!--
function ChkWin(){
if (parent.location.href != window.location.href)
parent.location.href= window.location.href;
}
//-->
</script>
</head>

<BODY onload="ChkWin();">
</BODY>
    • good
    • 0

「フレーム内へのリンク」というのはどういうことですか?


フレームであるparentと自分自身のwindowのlocation.hrefを
同じにするというのはどういう目的なんでしょうか?

この回答への補足

お返事ありがとうございます。
「フレーム内へのリンク」の意図は、他人のページのフレーム内に自分のページを表示させたくないということです。
根本的にスクリプト自体が間違っているのでしょうか。

補足日時:2005/05/19 07:38
    • good
    • 0

フレーム内のページを直接開こうとしているのですから、そのページの親フレームは存在していません。


なので、parent.location.hrefに代入しようとすると怒られます。
>parent.location.href= window.location.href;
の部分を
window.location.replace('本来のトップページのアドレス');
にしてみて下さい。

この回答への補足

お返事ありがとうございます。
早速試してみましたが、エラーは出ないものの
無限ループの様に本来のページを読み込み続けています。
何が悪いのでしょうか。

補足日時:2005/05/19 07:37
    • good
    • 0

<BODY>と</BODY>の間で試してみてください。

この回答への補足

早速のお返事ありがとうございました。
試してみましたが、エラーが出てだめでした。

補足日時:2005/05/18 17:28
    • good
    • 0

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