私は試しています window.parent.document.dispatchEvent(keyboardEvent)です。TypeError:readonlyプロパティの値を変更しようとしています。 defineProperty
私は keyboardeventのキーコード値をキャッチするためにこれを行い、どのキーが押されたかに基づいて何らかの操作を実行します。このキーコードがないと、ブラウザで実行していても0になります。
私のコードは
window.setTimeout(function() { 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 false, // altKeyArg false, // shiftKeyArg false, // metaKeyArg 666, // keyCodeArg : unsigned long the virtual key code, else 0 null // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0 ); delete keyboardEvent.keyCode; Object.defineProperty(keyboardEvent, "keyCode", {"value" : 666}); window.parent.document.dispatchEvent(keyboardEvent); }, 10000);
私はちょうどテストする値666を与えているようなものです。
これはChromeで実行するとうまく動作します。
ただし、このコード行
Object.defineProperty(keyboardEvent, "keyCode", {"value" : 666});thorws "TypeError:読み取り専用プロパティの値を変更しようとしています。defineProperty"私はセットトップボックスでコードを実行します。
これは、上記のコードのためのplnkr
リンクhttp://plnkr.co/edit/my8HkFpRqZRDrFYgIxXL?p=preview
私は、キープレスイベントを自動化することができますので、どのように私は、セットトップボックスで正しいキーコードをキャプチャすることができますか? 上記のコードに余分な行を追加/変更して、セットトップボックスに正しいキーコードを与えることはできますか?