Ctrl+z
で構成されたイベントkeyCodeと、Ctrl+Shift+z
で構成されたイベントのキーコードをどのようにトリガーするのでしょうか?jQueryトリガーkeyCode wysiwyg textareaのCtrl + Shift + z&Ctrl + z
5
A
答えて
5
あなたがイベントをトリガしたい場合、それはこのようなものでなければなりません:
HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<input type=button value=CTRL+SHIFT+Z id=bcsz />
<input type=button value=CTRL+Z id=bcz />
<textarea id=t ></textarea>
</body>
</html>
はJavaScript
var t = document.getElementById('t'), //textarea
bcsz = document.getElementById('bcsz'), //button ctrl shift z
bsz = document.getElementById('bcz'), // button ctrl z
csz = document.createEvent('KeyboardEvents'), //ctrl shift z event
cz = document.createEvent('KeyboardEvents'); // ctrl z event
csz.initKeyboardEvent(
'keydown',
true, // key down events bubble
true, // and they can be cancelled
document.defaultView, // Use the default view
true, // ctrl
false, // alt
true, //shift
false, //meta key
90, // keycode
0
);
cz.initKeyboardEvent(
'keydown',
true, // key down events bubble
true, // and they can be cancelled
document.defaultView, // Use the default view
true, // ctrl
false, // alt
false, //shift
false, //meta key
90, // keycode
0
);
bcz.addEventListener('click', function(){
t.dispatchEvent(cz);
}, false);
bcsz.addEventListener('click', function(){
t.dispatchEvent(csz);
}, false);
しかし、うまくいかないようです。私はこれに費やす時間はもうありませんが、これはセキュリティ問題のようなものです。 MSDN、W3C、MDNにこれらのドキュメントが表示され、実際の方法があるかどうかがわかります。私はWYSIWYGテキストエリアのための古典的なアンドゥ&リドゥボタンを作成する方法を知りたいのですが、より良い説明のための
9
e.which
は、jqueryで正規化されたクロスブラウザです。
$(document).keydown(function(e){
if(e.which === 90 && e.ctrlKey && e.shiftKey){
console.log('control + shift + z');
}
else if(e.which === 90 && e.ctrlKey){
console.log('control + z');
}
});
3
CtrlキーとShiftキーはキーイベントに含まれていますが、キーコードはキーを押すキーを参照しています。 CtrlキーとShiftキーはコントロールキーで、キーイベントには独自のキーがあります。あなたはCtrl+Shift+Z
、その後のKeyDownイベントを押すと、例えば、
はこれを次のようになります。
{
altGraphKey: false
altKey: false
bubbles: true
cancelBubble: false
cancelable: true
charCode: 0
clipboardData: undefined
ctrlKey: true
currentTarget: null
defaultPrevented: true
detail: 0
eventPhase: 0
keyCode: 90
keyIdentifier: "U+004C"
keyLocation: 0
layerX: 0
layerY: 0
metaKey: false
pageX: 0
pageY: 0
returnValue: false
shiftKey: true
srcElement: HTMLTextAreaElement
target: HTMLTextAreaElement
timeStamp: 1318460678544
type: "keydown"
view: DOMWindow
which: 90
__proto__: KeyboardEvent
}
あなたがZ
を押しながらこれらのキーが押されたため、該当するCtrl
とShift
キー用の2つのキーがある見ることができるように。
だから、このように、このイベントを検出することができます。
document.addEventListener('keydown', function(event){
if(event.keyCode == 90 && event.ctrlKey && event.shiftKey){
// do your stuff
}
}, false);
注:あなたは、複数のキーのキーボードショートカットのために耳を傾ける必要があります。 keyup
は機能しません。
関連する問題
- 1. PysparkハンドルCtrl + Z?
- 2. Visual StudioでCtrl + C(Ctrl + V、Ctrl + Z、Ctrl + X)キーボードショートカットボタンを1回押す
- 3. はCtrl + TEXTAREA
- 4. pfepectにctrl + zを渡します。
- 5. WindowsのCtrl + Zで入力の終了を知らせるC++?
- 6. どのようにスマートなgitの "Ctrl + Z"に?
- 7. tmuxの内部でvimを一時停止するctrl-z
- 8. 偶発的なCtrl + Zの後にローカルホストがタイムアウトしました。
- 9. LinuxのファイルでCtrl + Zを消去するには?
- 10. エスケープはCtrl-Zになりますが、なぜですか?
- 11. アドビブラケット:元に戻す(Ctrl + Z)が動作しません
- 12. ctrl + Cまたはctrl + Zで親プロセスとその子プロセスを強制終了する方法
- 13. Chromeのテキスト入力を元に戻す/やり直しを無効にする(Ctrl + Z/Ctrl + Y)
- 14. Ctrl + Shift + Del(ブラウザキャッシュをクリア)vsセッション終了
- 15. のVisual Studio 2015のTabControl無効にキーボードショートカットのCtrl + Tabキー&Ctrlキー+ Shift + Tab
- 16. jquery trigger ctrl + click
- 17. シングルページアプリケーションのテキストエディタのCtrl + Z(元に戻す/やり直し)を処理する
- 18. Qt/C++での元に戻す機能(Ctrl + Zなど)の実装
- 19. Greatisフォームデザイナでの元に戻す(CTRL-Z)を無効にする方法
- 20. ABAPエディタは、アクティベーション後に古いコードを取得します。別名Ctrl + Z
- 21. ループを終了しようとするとCtrl + Zが機能しません
- 22. 正常にCTRL-Zをトラップできますが、SIGTSTPはトラップできません。
- 23. Robotクラスを使用してJavaでCtrl + Zキーイベントを送信する方法
- 24. ターミナルをrawモードにするsttyオプションはありますか? Ctrl + Z
- 25. Ctrl-UpとCtrl-DownのASCIIコード
- 26. jQueryとZ-インデックスリセット
- 27. ckeditor z-index on textareaサイズ変更
- 28. Win32 API - Ctrl + Ctrl C
- 29. jqueryのインクリメンタルZ-インデックス
- 30. ブラウザテキストズーム(CTRL +、CTRL-)ブーツストラップ3のレイアウト
...ベストプラクティス – sbaaaang