gpt4 book ai didi

javascript - 类型错误 : Attempting to change value of a readonly property. 定义属性

转载 作者:行者123 更新时间:2023-11-28 05:29:55 25 4
gpt4 key购买 nike

我正在尝试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“类型错误:尝试更改只读属性的值。defineProperty。”当我在机顶盒中运行代码时。

这是上述代码的 plnkr 链接 http://plnkr.co/edit/my8HkFpRqZRDrFYgIxXL?p=preview

如何在机顶盒中捕获正确的键码,以便自动执行按键事件?是否可以在上述代码中添加/修改任何额外的行,以便在机顶盒上提供正确的 key 代码?

最佳答案

我正在回答我自己的问题,因为我发现this link这正在解决这个问题。

机顶盒正在使用webkit运行 JavaScript 代码以及何时 keyboardEvent已注册并 dispatchEvent对于任何按键,webkit 都会调用 keyCode对于任何 keyboardEvent 为 0 .

要解决此问题,请不要使用 keyboardEvent使用通用事件以编程方式触发事件。

代码可见this link 。这里的功能__triggerKeyboardEvent正在使用通用事件以编程方式触发事件。

它在机顶盒中完美运行。

关于javascript - 类型错误 : Attempting to change value of a readonly property. 定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39786045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com