2017-03-31 6 views
3

私がやっていることは、テストボックスを選択するスクリプト(JS)を実行することです。 IDフィールド名はJManです。そのフィールドを選択したら、プログラムコードでキーコードALT+0を実行してから、5秒間遅延させようとしています。ところで、IEブラウザでこれを実行しています。プログラムでAltキーを押しながらJavaScriptを押す

function myFunction() { 
    var keyboardEvent = document.createEvent("keyboardEvent").; 
    document.getElementById("JMan"); 
} 
var keyboardEvent = document.createEvent("KeyboardEvent"); 
var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent"; 


keyboardEvent[initMethod](
    "keydown", // event type : keydown, keyup, keypress 
    true, // bubbles 
    true, // cancelable 
    window, // viewArg: should be window 
    false, // ctrlKeyArg 
    true, // altKeyArgenter code here 
    false, // shiftKeyArg 
    false, // metaKeyArg 
    48, // keyCodeArg : unsigned long the virtual key code, else 0 
    0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0 
); 
document.dispatchEvent(keyboardEvent); 
+1

何Altキー+ 0を行うことになっていますか? – deceze

+0

JManフィールドが選択され、ALT 0が開始されると、別のミニウィンドウが開きます。もし何か間違いや何か明白なことを聞​​いていたら、ごめんなさい。私はJSに新しいと通常これを行うためにセレンを使用しようとするが、プロジェクトはJSとI.Eを必要とする。使用する。 –

答えて

1

検出イベントハンドラは、Alt-0を検出するノンフリル方式です。 Altと0の間で別のキーが押されたかどうかを調べるなど、より洗練されたチェックをすることができます(Alt-0のようにまたはCtrl-Alt-0のように扱います) Alt-0)。これは主に、主要なイベントがブラウザ間で大きく異なるため、私は多数の人でうまく動作するようなものを作りたかったのです。

この例のボタンは、イベントハンドラがキャッチするように設計された最小の「Alt-0」イベントを発生させます(または、ウィンドウにAlt-0を入力する必要があります)。

function fireAlt0() { 
 
    console.log("firing event"); 
 
    window.dispatchEvent(new KeyboardEvent("keydown", { key: "0", altKey: true })); 
 
} 
 

 
function detectAlt0(event) { 
 
    if ("keydown" == event.type) { // we might want to use the same function for any of (keydown, keypress, keyup) events 
 
     if (event.key == "0" && event.altKey && !event.repeat) { 
 
      console.log("Open a window!"); 
 
     } 
 
    } 
 
} 
 
    
 
window.addEventListener("DOMContentLoaded", function() { 
 
    // Use keydown because keypress won't fire for the Alt-0 combination (since it doesn't produce a visible character) 
 
    window.addEventListener("keydown", detectAlt0, false); 
 
    document.getElementById("button").addEventListener("click", fireAlt0, false); 
 
}, false);
<button id="button">fireAlt0</button>

関連する問題