gpt4 book ai didi

javascript - Paper.js 事件行为因浏览器而异

转载 作者:行者123 更新时间:2023-11-29 14:44:39 24 4
gpt4 key购买 nike

查看此 Paper.js sketch ,您可以在其中尝试使用 Ctrl+V 粘贴示例项目。此草图适用于 Firefox,但不适用于 Chrome 或 Opera(这是我测试的范围)。为什么会这样?如何修改此草图,以便我可以在 Chrome 中运行草图时使用 Ctrl + V 粘贴示例文本?

请注意,当您运行它时,会记录按键事件。在 Chrome 中,仅记录 Ctrl keyup 事件。在 Firefox 中,V keyup 和 Ctrl keyup 事件都会被记录下来。

最佳答案

问题似乎是 Chrome 在按下控制键时不会生成按键事件。 paperjs 中的逻辑依赖于 keypress 事件(最终)生成 keyup 事件。

这有点令人困惑,但你可以看看论文的 Key.jsDomEvent.add(document, { 开始的行开始.你可以看到 handleKey仅在 keypress 上调用非特殊键事件。 handleKey是将关键代码插入charCodeMap的代码.所以当keyup事件发生纸张未找到codecharCodeMap并且不调用 handleKey .

如何解决这个问题?

您正在做的事情很简单,所以也许只需要使用 native DOM 事件处理就可以搞定:

document.onkeyup = function (e) {
var code = e.which || e.keyCode;
if (code === 'v' && e.ctrlKey) {
// do your pasting here
}
}

您可能需要考虑其他浏览器变体,但这应该可以帮助您入门。如果您正在使用 jQuery,您应该考虑使用 jQuery 的 keyup功能。透明地处理跨浏览器问题。

关于javascript - Paper.js 事件行为因浏览器而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34292205/

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