このWebサイトでは多くの結果が見つかりましたが、すべてJqueryを使用しているようです。私は本当にJqueryなしでそれを行う方法を知る必要があります。私が望むのは、ボタンをクリックして、ALT + NやCTRL + Gのようなキーストロークを発生させることです。ありがとう。Javascript Jqueryを使わずにマウスをクリックしたときのキー入力
答えて
KeyboardEvent
コンストラクタを見てください。ブラウザがHTMLを解析し、それはすぐにそれでJavaScriptを実行し、<script>
タグに達すると
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('alt-n').addEventListener('click', function() {
// create a new keyboard event
var event = new KeyboardEvent('keydown', {
key: 'n',
altKey: true
});
// dispatch the alt+n key press event
document.dispatchEvent(event);
});
document.getElementById('ctrl-g').addEventListener('click', function() {
// create a new keyboard event
var event = new KeyboardEvent('keydown', {
key: 'g',
ctrlKey: true
});
// dispatch the ctrl+g key press event
document.dispatchEvent(event);
});
// listen for any key presses
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey) {
// alt or ctrl is pressed
console.log('Key: ' + e.key + '; alt pressed: ' + e.altKey + '; ctrl pressed: ' + e.ctrlKey);
}
});
});
<button id="alt-n">alt+n</button>
<button id="ctrl-g">ctrl+g</button>
編集
:あなたはこのようにそれを使用することができます。ただし、残りの文書はまだ読み込まれていないことがあります。
これは、ページ内の一部のHTML要素がまだ存在しないため、JavaScriptでアクセスできないことを意味します(document.getElementById
は、要素を見つけることができず、プロパティを読み取れない場合はnull
を返します) null
から)。
要素が読み込まれるまで待つ必要があります。もちろん、あなたが関数を作成し、onclick
インラインハンドラでそれを呼び出すことができます。
function dispatchAltN() {
var event = new KeyboardEvent('keydown', {
key: 'n',
altKey: true
});
document.dispatchEvent(event);
}
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey) {
// alt or ctrl is pressed
console.log('Key: ' + e.key + '; alt pressed: ' + e.altKey + '; ctrl pressed: ' + e.ctrlKey);
}
});
<button onclick="dispatchAltN();">alt+n</button>
ただし、インラインではJavaScriptを使用しないでください。
幸運なことに、ブラウザはページの内容の読み込みが完了するとイベントを発生させます。このイベントはDOMContentLoaded
と呼ばれます。
ブラウザが最初にイベントを発生するのを待つときに、DOMのすべての要素にアクセスできることを確認できます。
HTML
<button onClick="myFunction()">Click me</button>
はJavaScript
function myFunction(){
var k = new Event("keydown");
k.key="a"; //Change this value for different keys
document.dispatchEvent(k);
}
キーAを押すだけですか?私の質問のように2つのキーを一緒に押す方法は?例えばCTRL + ESCAPE? – Hasen
あなたはそれによるいかなるevent
がevent.code
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<script>
var ev = new Event('keydown');
ev.code = 110; // change this code to specific event code to trigger it
function Load() {
var button = document.getElementById('btn');
// Listen for the event.
button.addEventListener('keydown', function(e) {
if (e.code === 110) {
alert('Successfully triggered ALT + N');
}
// write your logic here
}, false);
}
function dispatchKeypress(e) {
e.preventDefault();
// Dispatch the event.
e.target.dispatchEvent(ev);
}
</script>
</head>
<body onload="Load()">
<button onclick="dispatchKeypress(event)" id="btn">Button</button>
</body>
</html>
code
だトリガすることができます
ありがとうございます。しかし、それは本当にALT + Nか単に "N"を押しますか? 110はちょうど「N」のようです。 ESCAPEとALTをどうやって押しますか? – Hasen
- 1. マウスをクリックしたときのJavascript mouseleave
- 2. マウスが終わったときのJavascript
- 3. クリック時またはキー入力時にイベントをトリガーする[JavaScript]
- 4. Jqueryを使わずにMVCビューのページでEnterキーを押したときのボタントリガー
- 5. 入力テキストボックスでボタンをクリックしたときにjqueryメソッドを開始する
- 6. JavaScriptまたはJQueryを使わずにボタンをクリックすると@ HTML.DropDownListとTableがリセットされます
- 7. ボタンをクリックしたときにjavascript変数を入力します
- 8. jQueryを使わずに左クリックでシフトを使用する
- 9. チェックボックスをクリックしたときに入力を無効/有効にするjQuery
- 10. クリックしたときにテキストエレメントを入力フィールドタイプのテキストに変換し、クリックしたときにテキストに戻る
- 11. jqueryを使わずにvuejs2のupキーでオートスクロールリストをスクロール
- 12. マウスをシミュレートするキーが押されたときにクリックします。
- 13. jQueryを使わずにhrefをクリックした後にJavascript関数でdivが表示されない
- 14. に続いて<a>マウスの代わりにマウスをクリックしたときのリンク
- 15. Jquery change Tabキーへのキー入力
- 16. javascriptを使用してサブミットをクリックした後の空の入力にpopover
- 17. キーIDを使わずにデータストアを更新しました
- 18. マウスをクリックしてボタンを入力してください。
- 19. 外部キーを使わずにピューニーを挿入
- 20. jQueryは入力時にキー入力をシミュレートします
- 21. クリックした画像にJavaScriptを使用してTextaeraを入力できるようにするJavaScript
- 22. キーを入力して入力をリセットします。 Jquery
- 23. Jqueryトリガーをクリックして入力を入力します
- 24. jQueryを使用した入力フォームのjavascript効果
- 25. スキャナ入力キーを使用したJava
- 26. jQuery - リンクがクリックされたときに入力フィールドにカーソルを置く
- 27. 次と前のキー入力Jquery
- 28. jqGrid DatePickerフィルタリングEnterキーを使わずに
- 29. クリックで重複入力、前にクリックされた要素を挿入 - jQueryの
- 30. ファイル入力欄でjavascript/jqueryを使用
エラーを取得する "Uncaught TypeError:これを使用してnullの" addEventListener 'プロパティを読み取ることができません。 – Hasen
これは、JavaScriptが実行されたときにDOM要素がまだロードされていないためです。あなたは 'DOMContentLoaded'イベントをリスンする必要があります。私はこのイベントを使用するために私の答えを編集します。 – PeterMader
いいえ、IEの 'KeyboardEvent'はサポートされていません。 https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent#Browser_compatibility –