我正在尝试 window.parent.document.dispatchEvent(keyboardEvent)。
我这样做是为了捕获 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:试图改变readonly属性的值.defineProperty。”当我在机顶盒中运行代码时。
这是上面代码http://plnkr.co/edit/my8HkFpRqZRDrFYgIxXL?p=preview
的plnkr
链接
如何在机顶盒中捕获正确的密码以便我可以自动按键事件? 是否可以在上面的代码中添加/修改任何额外的行,以便在机顶盒上提供正确的密钥代码?