Javascript TypeError:尝试更改只读属性的值。定义属性
我正在尝试window.parent.document.dispatchEvent(keyboardEvent) 我这样做是为了捕捉keyboardevent的keycode值,并根据按下的键执行一些操作。如果没有这个键码,即使在浏览器中运行,也会显示为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); setTimeout(函数(){ var keyboardEvent=document.createEvent(“keyboardEvent”); var initMethod=typeof keyboardEvent.initKeyboardEvent!=“未定义”?“initKeyboardEvent”:“initKeyEvent”; 键盘事件[初始化方法]( “keydown”,//事件类型:keydown、keydup、keypress 对,//气泡 true,//可取消 窗口,//viewArg:应该是窗口 false,//ctrlKeyArg false,//altKeyArg false,//shiftKeyArg false,//metaKeyArg 666,//keyCodeArg:未签名的长虚拟密钥代码,否则为0 null//charCodeArgs:与按下的键关联的Unicode字符的无符号长,否则为0 ); 删除keyboardEvent.keyCode; Object.defineProperty(keyboardEvent,“keyCode”,“value”:666}); window.parent.document.dispatchEvent(keyboardEvent); }, 10000); 我给出值666只是为了测试 当我在chrome中运行它时,它工作得很好 但是这行代码对象。defineProperty(keyboardEvent,“keyCode”,“value”:666}); Object.defineProperty(keyboardEvent, "keyCode", {"value" : 666}); thorws“TypeError:试图更改只读属性的值。defineProperty。”当我在机顶盒中运行代码时 这是上述代码的Javascript TypeError:尝试更改只读属性的值。定义属性,javascript,html,webkit,keyboard-events,Javascript,Html,Webkit,Keyboard Events,我正在尝试window.parent.document.dispatchEvent(keyboardEvent) 我这样做是为了捕捉keyboardevent的keycode值,并根据按下的键执行一些操作。如果没有这个键码,即使在浏览器中运行,也会显示为0 我的代码是这样的 window.setTimeout(function () { var keyboardEvent = document.createEvent("KeyboardEvent");
plnkr
链接
如何在机顶盒中捕获正确的按键代码,以便自动执行按键事件?
是否可以在上述代码中添加/修改任何额外的行,以在机顶盒上提供正确的键代码?我正在回答我自己的问题,因为我发现这是解决此问题的方法 机顶盒使用
webkit
运行JavaScript代码,当注册keyboardEvent
并调用dispatchEvent
时,对于任何按键,webkit将keyCode
作为0表示任何keyboardEvent
要解决此问题,请不要使用keyboardEvent
使用泛型事件以编程方式触发事件
代码可以在中看到。这里的函数\uTriggerKeyboardEvent
使用泛型事件以编程方式触发事件
它在机顶盒中工作得非常好。我正在回答我自己的问题,因为我找到了解决这个问题的方法 机顶盒使用
webkit
运行JavaScript代码,当注册keyboardEvent
并调用dispatchEvent
时,对于任何按键,webkit将keyCode
作为0表示任何keyboardEvent
要解决此问题,请不要使用keyboardEvent
使用泛型事件以编程方式触发事件
代码可以在中看到。这里的函数\uTriggerKeyboardEvent
使用泛型事件以编程方式触发事件
它在机顶盒中工作得非常好