识别 html5 画布中按键的最佳方法是什么?

发布于 2024-12-11 06:01:17 字数 579 浏览 0 评论 0原文

到目前为止,我已经找到了许多关于它的不同文章,但它们似乎都有相互冲突的建议以及与不同浏览器的不同级别的兼容性。都让人头疼不已。有没有一种简单的方法来解析画布元素中用户的击键?

即使像这样用于禁用快捷键的代码片段也不适用于所有浏览器。

if(e.preventDefault) // non-IE browsers
        e.preventDefault();
    else  // IE Only
        e.returnValue = false;

现在我正在使用它

document.addEventListener('keypress', KeyPressed, true); 

var keyCode = String.fromCharCode(e.charCode);

它在 Firefox 中工作正常,但在其他地方都没有。

我最终可能会让它工作,但是有没有一种简单的方法可以做到这一点而不用把我所有的头发都拔出来呢?看起来很奇怪,这样一个看似常见的功能却很难实现。谢谢!

So far I've found many different articles on it but they all seem to have conflicting advice and different levels of compatibility with different browsers. All a huge headache. Is there a fuss free way to parse a user's keystrokes in a canvas element?

Even snippets such as this for disabling the shortcut keys don't work for all browsers.

if(e.preventDefault) // non-IE browsers
        e.preventDefault();
    else  // IE Only
        e.returnValue = false;

Right now I'm using

document.addEventListener('keypress', KeyPressed, true); 

and

var keyCode = String.fromCharCode(e.charCode);

It works fine in firefox but nowhere else.

I'll probably get it working eventually but is there a fuss free way to do it without pulling all my hair out? Seems strange that such a seemingly common feature would be so hard to implement. Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人间☆小暴躁 2024-12-18 06:01:17

“有没有一种既省事又不把我的头发都拔掉的方法?”
是的!如果您使用 jQuery ,则可以。
因为 jQuery 可以让您的生活更轻松,并且还可以跨浏览器工作。

只需将其添加到您的代码中,

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>

<script>
$(document).ready(function(){
    $(document).keypress(function(event){
    if (event.which == 13)
        alert("You pressed the Enter Key");
    });
});
</script>

"is there a fuss free way to do it without pulling all my hair out? "
Yea! You can if you use jQuery .
Because jQuery can make life easier for you and works cross browser too.

Just add this to your code,

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>

<script>
$(document).ready(function(){
    $(document).keypress(function(event){
    if (event.which == 13)
        alert("You pressed the Enter Key");
    });
});
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文