• ベストアンサー

location.hrefの使用条件について

あるんですか? 単独でlocation.href="a.html"; って書いても自動でも飛んでくれないんですけど?

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

  • ベストアンサー
回答No.1

飛び先のページがあればちゃんと表示されるはずですよ。 単独で書かれたという事ですが、どの様に書かれたのでしょう? テストで以下の物を作り確認してみました。 test.html ----- <html> <head> <title>test</title> <SCRIPT LANGUAGE="JavaScript"> <!-- location.href='test2.html'; //--> </SCRIPT> </head> <BODY> <H1>ページ1</H1> </BODY> </html> test2.html ------ <html> <head> <title>test</title> </head> <body> <H1>ページ2</H1> <form> <input type="button" value="押す" onClick="location.href='test.html'"> </form> </body> </html> これで確認した所、test.htmlを表示しようとすると すぐにtest2.htmlに飛び、test2.htmlでボタンを 押してtest.htmlに飛ぼうとしても、一瞬test.htmlを 表示後、test2.htmlに戻ってきます。 ご確認ください。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

location.href なら使用条件はないと思います。 というかあくまでそれ(だけ)が使えない条件はないだろうという事で、 まずは JavaScript は使えますよね? <script type="text/javascript"><!-- alter("test101"); // --> </script> を <html> <head> の直後にでも追加して下さい。 (あくまで検証用であり、本当はあまりお勧めしたくない位置です。) これでダイアログが表示されなければ JavaScript 自体がブラウザで使えていません。 設定を変える必要があります。 一応、JavaScript を記述できる場所に記述という基本中の基本はありますが・・・。 さすがに、 <body>location.href="a.html";</body> と書いても飛んでは行きませんし・・・。 という事で意図していないがそこが JavaScript を解釈できる状態か確認する為に、 その場所に代わりに alter("test201"); と書き換えてみて下さい。ダイアログが表示されなければそこでは JavaScript 自体が使えていません。 (記述場所等が不適切か・・・。前方の記述が不適切だったりすると、意識していて記述している物が望む通りに解釈されていない事も・・・。) でよくあるミスの例示としてもしかして、 <input onClick=" location.href="a.html"; "> の様に”~”で囲んでいる中で”~”で囲む記述をしていたりして・・・?(見やすい様に全角で記述しましたが本当は半角です。) 一応ネストは出来ませんので意図している様には解釈されず onClick=" location.href=" と記述されていると解釈され、あとはブラウザがいろいろとエラーを補正,無視等を行って処理されますが。 あとは、リンク(A要素)のonClickイベントに記述のの場合は、最後に return false; として偽を返さないと href属性が上位で評価されて location.href="a.html"; が効きません。 それ以外だと、あとは検証用ページ等を作って もっと条件を絞って提示して頂かないと 回答は難しいです。 難しい一例として、文字化けで別の場所が不適切になり 該当箇所が望む様な解釈をされていないとかもありえますし・・・。

すると、全ての回答が全文表示されます。

関連するQ&A