プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

Firefoxには、F5キーに、ページのリロードが既に割り付けられています。

ですから、F5を押すと、onKeyDownのイベントより先にソフトの機能が優先され呼び出されてしまいます。結果、ページがリロードしてしまい、スクリプトは実行できません。

keyCode == 115 にして、F4で呼び出してみてください。F4は、Firefoxでは、特にショートカットが割り付けられていませんから、動くはずですよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
F4ではなぜかうまくいきませんでしたがF8の119に書き換えることでできました
F5以外でショートカットが割り振られていないキーだと動くようですね
document.writeは例外的にソフトの機能より前に実行されたと考えていいのかな?
よくわかりませんが回答ありがとうございます

お礼日時:2007/09/26 00:11

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