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. はCtrl + TEXTAREA
- 2. pfepectにctrl + zを渡します。
- 3. LinuxのファイルでCtrl + Zを消去するには?
- 4. エスケープはCtrl-Zになりますが、なぜですか?
- 5. ctrl + Cまたはctrl + Zで親プロセスとその子プロセスを強制終了する方法
- 6. jquery trigger ctrl + click
- 7. Qt/C++での元に戻す機能(Ctrl + Zなど)の実装
- 8. ループを終了しようとするとCtrl + Zが機能しません
- 9. Robotクラスを使用してJavaでCtrl + Zキーイベントを送信する方法
- 10. ckeditor z-index on textareaサイズ変更
- 11. Win32 API - Ctrl + Ctrl C
- 12. jQueryとZ-インデックスリセット
- 13. 送信Ctrl + K Ctrk + Uが機能しないCtrl + K Ctrl + C
- 14. jqueryのインクリメンタルZ-インデックス
- 15. JavaScriptなどのダブルキーストロークの検出方法Ctrl + T Ctrl + K
- 16. jQuery UIオートスクロールバーZ-インデックスヘルプ
- 17. WPF - Ctrl + Shiftキーを押したときのキャプチャ方法
- 18. どのようにスイングアプリケーションではCtrl + Shiftキー+ F1をシミュレートし、ファイル
- 19. ウィンドウを最小化するためにCtrl-x Ctrl-zキーをEmacsでバインドしないように見えることはありません( 'suspend-frame)
- 20. Eclipse検査(Ctrl + Shift + I)が機能しない
- 21. キーダウンイベントなしでCTRLキーとSHIFTキーを検出しますか?
- 22. IntelliJでCtrl + Shift + Gに相当するショートカット
- 23. マウスイベントからshift/ctrl/altステートを取得していますか?
- 24. Ctrl + Shift + dでregisterHotKeys関数を使用する方法
- 25. オープンリソースダイアログ(Ctrl + Shift + R)で* .classをフィルターする方法は?
- 26. Ctrl + Shift + Spaceショートカットはeclipseでメソッドヘルプを表示しますか?
- 27. jQueryとZインデックスの問題
- 28. Ctrl + C
- 29. は、[Vimのにすべての原因に関して]バック、通常のテキストエディタで(Ctrl + Z)のviで/ vimの
- 30. jquery-ui datepicker change z-index
...ベストプラクティス – sbaaaang