我正在嘗試 window.parent.document.dispatchEvent(keyboardEvent)。TypeError:嘗試更改只讀屬性的值。 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只是爲了測試。
這工作正常,當我運行它在鉻。
但這行代碼
Object.defineProperty(keyboardEvent, "keyCode", {"value" : 666});thorws「TypeError:嘗試更改只讀屬性的值defineProperty。」當我在機頂盒中運行代碼。
這是plnkr
鏈接,上面的代碼http://plnkr.co/edit/my8HkFpRqZRDrFYgIxXL?p=preview
我怎樣才能捕捉到機頂盒正確的鍵碼,所以我可以自動按鍵事件? 是否可以在上面的代碼中添加/修改任何額外的行,以便在機頂盒上提供正確的密鑰代碼?