我正在尝试 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
我怎样才能捕捉到机顶盒正确的键码,所以我可以自动按键事件? 是否可以在上面的代码中添加/修改任何额外的行,以便在机顶盒上提供正确的密钥代码?