• ベストアンサー
  • 困ってます

location.hrefが動かない・・・

  • 質問No.3376821
  • 閲覧数1651
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

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でもダメでした
誰か原因がわかる方が居られましたら教えてください
よろしくお願いします

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

  • 回答No.1
  • ベストアンサー
Firefoxには、F5キーに、ページのリロードが既に割り付けられています。ですから、F5を押すと、onKeyDownのイベントより先にソフトの機能が優先され呼び出されてしまいます。結果、ページがリロードしてしまい、スクリプトは実行できません。

keyCode == 115 にして、F4で呼び出してみてください。F4は、Firefoxでは、特にショートカットが割り付けられていませんから、動くはずですよ。
お礼コメント
n5123

お礼率 100% (1/1)

回答ありがとうございます
F4ではなぜかうまくいきませんでしたがF8の119に書き換えることでできました
F5以外でショートカットが割り振られていないキーだと動くようですね
document.writeは例外的にソフトの機能より前に実行されたと考えていいのかな?
よくわかりませんが回答ありがとうございます
投稿日時:2007/09/26 00:11
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ