有没有办法在不使用Bookmarklet(href="javascript:..."
)的情况下拦截链接上的Enter键?
我在试这个:
addEventListener('keypress', (e) => {
console.log(e);
if (e.charCode == 13) {
alert('x');
}
});
<a href="#">this is link</a>
如果你按下tab键并输入代码,代码不会被触发。只有当链接不在焦点上时,警报才会被触发。有没有一种方法可以在链接上按下enter键时触发JavaScript?或者href
是唯一的方法?应该有一种方法可以使用JavaScript,而不必将JavaScript放入页面上的每个链接中。
如果你问我为什么需要这个,那是因为这个问题:how to open a file upload dialog box when a hyperlink is clicked,我想更新我的答案,看看我是否可以触发点击input[type="file"]
当你按回车键。
1条答案
按热度按时间wztqucjr1#
如果希望处理程序仅在链接获得焦点时触发,请将侦听器添加到元素本身。
若要实现更一致的键盘事件处理,请侦听
keydown
而不是keypress
which has been deprecated。要拦截enter打开链接的缺省操作,请使用
event.preventDefault()
最后,避免使用字符码或键码,而是使用
key
,这在不同的键盘布局中更一致。