- ベストアンサー
location.hrefを使ったインラインフレームが宣言されていませんとなる
web初心者です。 インラインフレームを使用しているのですが、JavaScriptからxxxx.location.href=~とすると、xxxxは宣言されていませんというエラーになります。 表示されたwebのソースをみると、xxxxは存在するのですが。。。 原因が分かりません。 何か思い当たる点があれば、教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご質問文からでは不明ですが、xxxxってiframeの要素では? location.hrefはwindowオブジェクトの属性なので、iframe要素ではうまくいかないはず。 alert(xxxx.location); を行なえば undefined が返ると思いますが? 表示先を変えたいのなら xxxx.src = '~~' で、できると思いますが? どうしてもlocationでやりたいのなら xxxx.contentWindow.location.href = '~~' みたいな感じでしょうか? 万一を考えて、 alert(xxxx); もテストしてみましょう。 objectが返されない場合は、要素が取得できていないということになります。
その他の回答 (2)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
フレームの中身のURLは同じドメインですか? ドメインが違うと未定義になります。
お礼
回答ありがとうございます。 同じドメインです。 フレームからフレームでしたので、Parentが必要でした。
- yyr446
- ベストアンサー率65% (870/1330)
xxxx.location.href=~ の直前にalert("しばし待て!"); 1行入れて、しばらく待ってからアラートを閉じれば、うまくいったりして...
お礼
回答ありがとうございます。 入れてみましたが、ダメでした。 同じfomにもインラインフレームがあるのですが、そちらは問題なく動いています。
お礼
回答ありがとうございました。 >objectが返されない場合は、要素が取得できていないということになります。 正解でした。親元のParentが必要でした。