プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

飛び先のページがあればちゃんと表示されるはずですよ。



単独で書かれたという事ですが、どの様に書かれたのでしょう?

テストで以下の物を作り確認してみました。

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に戻ってきます。

ご確認ください。
    • good
    • 0

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";
が効きません。


それ以外だと、あとは検証用ページ等を作って
もっと条件を絞って提示して頂かないと
回答は難しいです。

難しい一例として、文字化けで別の場所が不適切になり
該当箇所が望む様な解釈をされていないとかもありえますし・・・。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!