まずキーボードをクリックしなくてもキーボードイベントを検出したいと思います。キーボードイベントはマウスに頼るべきではないので、これは奇妙に思えます。私はFirefoxの最新バージョンを使用しています。開発ツールには、最初にドキュメントをクリックしなくても、キーボードイベントを防ぐための初期フォーカスがあります。
私はいくつかの方法でウィンドウ、ドキュメント、ボディにフォーカスを追加しようとしましたが、これまでのところ運がありません。
私はjsfiddleリンクを与えますが、それはiframeの内部で実行されていますが、これは状況とソリューションが異なると思います。ここで
は、私が試したものです:
(何のjQueryんしてください!)
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<meta name="description" content="">
<meta name="author" content="">
</head>
<body>
<p>Hello world.</p>
<script>
document.addEventListener("DOMContentLoaded", function(e) {
// none of these seem to help
document.body.focus();
//document.focus();
//window.focus();
//top.document.focus();
//parent.document.focus();
//document.documentElement.focus();
});
// not triggered until after clicking in the window
document.addEventListener("keydown", function(e) {
console.log("keydown", e);
});
</script>
</body>
</html>
更新
開発ツールでを閉じて、キーボードイベントは、罰金トリガ(フォーカスを設定する必要はありません)。
コンソールやデベロッパーツールのウィンドウからフォーカスを取り戻すにはどうすればよいですか(通常のユーザーが開いている可能性は低いですが)。
正確に何をしますか? – Lixus
キーボードのイベントを最初にクリックすることなく検出する –
Chrome v61.0.3163.100で問題を再現できます。 – moffeltje