• 締切済み

フレーム内リンクを禁止したい

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

みんなの回答

  • deadlock
  • ベストアンサー率67% (59/87)
回答No.7

>他人のページのフレーム内に自分のページを表示させたくないということです これだけが目的であれば、自分自身のアドレスを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)
回答No.6

#4です。 ローカルでは動作したので書き込みましたが… 質問者様の現象は異なるホスト間のページをJavaScriptで操作しようとしているために発生していると思われます。 残念ながら自分には解決策を提示することが出来ません。 大変失礼致しました。

参考URL:
http://chaichan.hp.infoseek.co.jp/qa4000/qa4475.htm
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

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

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.4

<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)
回答No.3

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

xiaolong_goo
質問者

補足

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

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

フレーム内のページを直接開こうとしているのですから、そのページの親フレームは存在していません。 なので、parent.location.hrefに代入しようとすると怒られます。 >parent.location.href= window.location.href; の部分を window.location.replace('本来のトップページのアドレス'); にしてみて下さい。

xiaolong_goo
質問者

補足

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

noname#15285
noname#15285
回答No.1

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

xiaolong_goo
質問者

補足

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

関連するQ&A

専門家に質問してみよう