- 締切済み
フレーム内リンクを禁止したい
表題のとおり、フレーム内へのリンクを禁止したく <script language="JavaScript"> <!-- if (parent.location.href != window.location.href) parent.location.href= window.location.href; //--> </script> を<head>と</head>の間に入れてみましたが、「書き込みができません。」とエラーになります。 どこか間違っているのでしょうか。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- deadlock
- ベストアンサー率67% (59/87)
>他人のページのフレーム内に自分のページを表示させたくないということです これだけが目的であれば、自分自身のアドレスをYahooやGoogleなど、別ページに飛ばす方法ではだめですか? あなたのサイトを訪れようとした人には少し申し訳ない方法になってしまいますが…。 // 親ウィンドウが存在する if (window.parent) { // アドレスが読み込めない(異なるホスト)か、 // 自分のサイトではない if (!window.parent.location || parent.location.href != window.location.href) { // 自分のページは他のウィンドウで開いておく window.open("自分のアドレス"); // フレーム内の自分のページは、別のページに飛ばしてしまう window.location.href="Yahooなどのアドレス"; } }
- ryk1234
- ベストアンサー率40% (46/113)
#4です。 ローカルでは動作したので書き込みましたが… 質問者様の現象は異なるホスト間のページをJavaScriptで操作しようとしているために発生していると思われます。 残念ながら自分には解決策を提示することが出来ません。 大変失礼致しました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>無限ループの様に本来のページを読み込み続けています。 ああっ! そうですね。無限ループしますね。 if (parent.location.href == undefined) //上位フレームが無いとき window.location.replace('本来のトップページのアドレス'); ではどうでしょうか?
- ryk1234
- ベストアンサー率40% (46/113)
<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>
- osumitan
- ベストアンサー率33% (102/307)
「フレーム内へのリンク」というのはどういうことですか? フレームであるparentと自分自身のwindowのlocation.hrefを 同じにするというのはどういう目的なんでしょうか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
フレーム内のページを直接開こうとしているのですから、そのページの親フレームは存在していません。 なので、parent.location.hrefに代入しようとすると怒られます。 >parent.location.href= window.location.href; の部分を window.location.replace('本来のトップページのアドレス'); にしてみて下さい。
補足
お返事ありがとうございます。 早速試してみましたが、エラーは出ないものの 無限ループの様に本来のページを読み込み続けています。 何が悪いのでしょうか。
<BODY>と</BODY>の間で試してみてください。
補足
早速のお返事ありがとうございました。 試してみましたが、エラーが出てだめでした。
補足
お返事ありがとうございます。 「フレーム内へのリンク」の意図は、他人のページのフレーム内に自分のページを表示させたくないということです。 根本的にスクリプト自体が間違っているのでしょうか。