• ベストアンサー

location.hrefを使ったインラインフレームが宣言されていませんとなる

web初心者です。 インラインフレームを使用しているのですが、JavaScriptからxxxx.location.href=~とすると、xxxxは宣言されていませんというエラーになります。 表示されたwebのソースをみると、xxxxは存在するのですが。。。 原因が分かりません。 何か思い当たる点があれば、教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

ご質問文からでは不明ですが、xxxxってiframeの要素では? location.hrefはwindowオブジェクトの属性なので、iframe要素ではうまくいかないはず。  alert(xxxx.location);  を行なえば undefined が返ると思いますが? 表示先を変えたいのなら  xxxx.src = '~~'  で、できると思いますが? どうしてもlocationでやりたいのなら  xxxx.contentWindow.location.href = '~~' みたいな感じでしょうか? 万一を考えて、  alert(xxxx); もテストしてみましょう。 objectが返されない場合は、要素が取得できていないということになります。

Mark0817
質問者

お礼

回答ありがとうございました。 >objectが返されない場合は、要素が取得できていないということになります。 正解でした。親元のParentが必要でした。

その他の回答 (2)

回答No.3

フレームの中身のURLは同じドメインですか? ドメインが違うと未定義になります。

Mark0817
質問者

お礼

回答ありがとうございます。 同じドメインです。 フレームからフレームでしたので、Parentが必要でした。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

xxxx.location.href=~ の直前にalert("しばし待て!"); 1行入れて、しばらく待ってからアラートを閉じれば、うまくいったりして...

Mark0817
質問者

お礼

回答ありがとうございます。 入れてみましたが、ダメでした。 同じfomにもインラインフレームがあるのですが、そちらは問題なく動いています。

関連するQ&A