ここに似たような質問がいくつかあります( JavaScript:CTRLボタンが押されたかどうかを確認する )が、実際の問題はイベントのトリガーです。私のjsコード:
// Listen to keyboard.
window.onkeypress = listenToTheKey;
window.onkeyup = listenToKeyUp;
/*
Gets the key pressed and send a request to the associated function
@input key
*/
function listenToTheKey(e)
{
if (editFlag == 0)
{
// If delete key is pressed calls delete
if (e.keyCode == 46)
deleteNode();
// If insert key is pressed calls add blank
if (e.keyCode == 45)
createBlank();
if (e.keyCode == 17)
ctrlFlag = 1;
}
}
イベントは、 ctrl。
トリガーも必要です ctrl。
jQuery/prototype/whateverを使用できないため、これらのソリューションは受け入れられません。
だから...どのように検出できますか ctrl?
if (e.ctrlKey)
を使用してみてください。
Onkeypressではなくonkeydownを使用すると役立つ場合があります。
から http://www.w3schools.com/jsref/event_onkeypress.asp
注:すべてのブラウザで、すべてのキー(ALT、CTRL、SHIFT、ESCなど)に対してonkeypressイベントが発生するわけではありません。ユーザーがキーを押したかどうかのみを検出するには、代わりにonkeydownイベントを使用します。これはすべてのキーに対して機能するためです。
イベントには、ctrlKeyという名前のプロパティがあります。これをチェックして、キーが押されたかどうかを確認できます。キーなどの詳細な制御については、以下のスニペットを参照してください。
function detectspecialkeys(e){
var evtobj=window.event? event : e
if (evtobj.altKey || evtobj.ctrlKey || evtobj.shiftKey)
alert("you pressed one of the 'Alt', 'Ctrl', or 'Shift' keys")
}
document.onkeypress=detectspecialkeys