• ベストアンサー

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

  • location.hrefが動かない・・・

    F5が押された場合に指定したURLに飛ばすようにしたいのですがなかなかうまくいきません・・・ ブラウザはFirefox 2.0.0.7を使用しています コードは以下の様にしております <script type="text/javascript"><!-- function key(keyCode){ if (keyCode == 116){ location.href = "http://www.google.co.jp/"; } } --></script> <body onKeyDown="key(event.keyCode)"> </body> 指定URLはGoogleにしています これ状態でF5を押してもなにも起こらず普通に更新されるだけです location.href = "http://www.google.co.jp/";の部分をdocument.write('TEST');などのようにdocumet.writeに書き換えると普通に指定した文字列が表示させます location.hrefと同様にwindow.location.hrefやlocation.replaceでも指定URLに飛ばされません documet.writeは動くのでF5が押されたかどうか判断するコードは間違っていないと思うのですが・・・ ちなみにIEでもダメでした 誰か原因がわかる方が居られましたら教えてください よろしくお願いします

  • location.hrefを使用したFRAME表示

    location.hrefを使ったjavascriptを作ろうとしています。 <script type="text/javascript"><!-- location.href = "http://www.yahoo.co.jp/"; // --></script> の改良版として、http://www.yahoo.co.jp/をフレームの右側に 表示させたいと考えています。 (src使用ではなくjavascriptのlocation.hrefを使うことがMUSTです) <head> <script type="text/javascript"><!-- right.location.href = "http://www.yahoo.co.jp/"; // --></script> </head> <body> <FRAMESET cols="50%,50%"> <FRAME name="left" src="left.html"> <FRAME name="right" src="right.html"> </FRAMESET> </body> としてみましたがうまくいきません。 location.hrefはmetaタグ内でしか有効ではないにも関わらず right.の指示をメタタグ内部で指定していないことが原因かも しれません。 javascriptのlocation.hrefを使ってフレームの右側に 表示させる方法をご教授願います。

  • location.hrefのURLについて

    以下のリンクの場合、現在表示しているアドレス(URL)が送られますが、 <a onclick="window.open('http://exsample.com='+encodeURIComponent(document.title)+' '+encodeURI(location.href));" href="javascript:void(0);"> これを指定したURLに変更したいのですが、その記述方法がわかりません。 ご教授よろしくお願いします。

  • javaScript:location.href

    javaScriptでlocation.hrefをつかってURLを抽出したところ ttp://○○:△△/%e9%a8~~~.htmlといった具合に途中部分が文字化けされてしまいます。 1、おそらく日本語部分が文字化けしたものだと考えられるのですが、正しく表示する方法を教えていただきたいです。 2、△△の部分が謎の4ケタの数字が表示されるのですが、これは何でしょうか。 回答よろしくお願い致します。

  • インラインフレーム内でリンク移動

    親ページ内のインラインフレームに表示したページで、リンク移動をしたいと考えています。 親ページはインラインフレームのみ ※楽●のカテゴリーページのため親ページにJavascriptなどはつけることができません。 インラインフレーム内の表示ページで、 例えば<a href="#sale">セール</a>とリンクを付け、そのインラインフレーム内のページの(id=sale)セールの項目へ移動させたいと考えています。 当初jQueryページ内移動、  http://web-park.org/javascript/scroll100126.html 上記サイトのコードを使用して試しましたが、インラインフレーム内ではだめでした。 何か上記のサイトのコードを変えればうまくいきそうな気もしましたが初心者なのでだめでした。 jQueryは使わず最も一般的な<a href="#sale">セール</a>⇒id=saleに変えましたが、こちらもインラインフレームではうまくいきません。 なんとかインラインフレーム内に表示するページのコードでリンク移動ができないものでしょうか? ご存知の方ぜひご教授お願いいたします。

    • ベストアンサー
    • HTML
  • location.hostを取得し、HTMLタグに

    javascript初心者です。 javascriptのlocation.hostを取得し、 HTMLのtableタグの中に入れたいですがソースの書き方がよくわかりません。 <ソース> ------------------------------------------------------------------------------ <script type="text/javascript"> <!-- var domain = location.host; //--> </script> …(省略) <td><a href="XXXX.co.jp" class="XXXX" data-url="■■■■■■/XXX/XXXX/XXXX" data-count="none" data-lang="ja"></a><script type="text/javascript" src="XXXXX"></script></td> ------------------------------------------------------------------------------ 上記の■■■■■■のところにvar domainの値を入れたいですが、 inputのhiddenタグを使うと””の中では文字列と認識されちゃうので、 ドメインだけきれいに入れる方法を知りたいです。 ご存知の方、どうかご指導よろしくお願いします。

  • 別窓のインラインフレームの中身を変更する

    javascript初心者です。 HPを作成中ですが、FLASHが全くわからないので、javascriptでアルバムを作っています。 メインページで何月が選択できるようになっており、クリックすると別窓が出ます。 別窓にはインラインフレームでサムネイル表示させ写真を選べるようにしています。 別窓のファイルは1つ(album.html)にし、メインページからインラインフレームの中身(1月.html,2月.html etc...)を変えようとしています。 プログラムはこのようにしました。 subWin = window.open("***"); function ***() { subWin.インラインフレーム名.location.href = ***.html; } 最初、インラインフレームの中身がうまく表示されなくて、プログラムが間違っているのかと思ったのですが、プログラムエラーは出ず、アクティブコントロールがどうのこうのって表示が出たので、試しに『マイコンピュータのファイルでのアクティブコンテンツ実行を許可する』にしてみたところ、ちゃんと表示されました。 しかし、ちょっと不安定なんです。 連続でメインページの月選択を押すと(そんな人はいないでしょうけど)表示されたりされなかったり・・・ javascriptを使うとそんなもんなんですか? それと、自分のPCでは見れてもサーバーにアップして公開しても他の人には見れるか心配です。 素直に別窓をフレーム分割して作る方法もありますが、そうするとファイル数が倍になるので今回javascriptを使いました。 プログラムが間違っているのか、そもそも別窓のインラインフレームを指定することが間違っているのか、不安定の原因をお教えください。

  • 1クリックで複数のページを開く(片方はインラインフレームに)

    現在フレームを使ってサイトを作っています。 左右2分割で、 左側がmenu.html name=left 右側がmain.html name=right 更に左側のページにはインラインフレームがあり、 frame.html name=sita となっています。 左側のインラインフレームの外にあるリンクを一度押すと、右側のフレームとインラインフレームの中で新しくページが開くようにしたいと考えています。 <SCRIPT language="JavaScript"> <!-- function link1() { parent.right.location.href='aaa.html'; parent.sita.location.href='bbb.html'; } --> </SCRIPT> <A href="JavaScript: link1();">リンク</A> (<body>諸々は略しています) このスクリプトを使用するとインラインフレームの部分が普通のフレームの場合は同時に開くことが出来たのですが、sitaをインラインフレームにすると動かなくなりました。 色々と検索してみたのですが答えにたどり着けずお手上げです。 解決方法をご存知の方、どうぞよろしくお願いいたします。

  • location.hrefはブラウザごとに異なる?

    phpなどで動的ページでhtmlを出力しています。 一覧で複数ジャンルを表示させているのですが、 静的ページなら<a name="xx">スクロール先</a>を使って 該当ジャンルまでスクロールさせて表示できますが、 動的ページのため、javascriptを用いてIEでは動作確認できましたが FireFoxやSafariでは、location.href="#jmp";では<a name="jmp"></a>に 移動しませんでした。 すべてのブラウザで同じ動作をさせる方法はありますか? FireFox, Safari個別の方法でも構いません。

  • 別ページのインラインフレームのアンカーに移動させる方法

    はじめまして、勉強になります。色々調べてやってみたのですがどうしてもうまく動作してくれません。 やりたい内容は、あるページから同一ドメイン内のあるページに飛ばした時にアンカー情報(#~)付きで渡して、渡したページ先のインラインフレーム内のアンカーに移動させたいのです。 下のソースでstr変数がうまく渡っていないのか、受け取り側のスクリプトがまずいのかが分かりません。(ちなみに途中で変数をモニターする方法があるのでしょうか?) 一応次のページのURLバーには?以降のアンカー情報付きで表示されてはいるのですが、その?以降のアンカー情報がインラインフレームのURLに渡っていないような状態です。 以下省略ソースです。 【送信元】 <SCRIPT Language="JavaScript"> <!-- html1 = "飛ばす先.htm"; function watasu(str){ location.href = html1 + "?"+ str; } //--> </SCRIPT> </head> <body ~ <img src="画像.jpg" onClick="watasu('#2')"> 【受信側 親ページ】 <script language="JavaScript" type="text/javascript"> <!-- url1 = "liveevent_test.htm"; function jump2(){ url2 = "読み込むインラインフレーム.html"; str = location.search.substr(1,location.search.length-1); top.インラインフレーム名.location.href = url2+str; //top.インラインフレーム名.location.hash = #アンカー; <--ちなみにこの一行を上の一行と差し替えたら動きました。ですがここは前ページからの変数渡しにしたいのです。 } // --> </SCRIPT> <body ~ onLoad="jump2()">~ <IFRAME SRC="読み込むページ.html" name="インラインフレーム名" >~</IFRAME> どなたかヒントでもいいのでお力添えください…もしかして根本的なやり方がまずいのでしょうか。 よろしくお願いいたします。