微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获得电子密钥代码?

如何解决如何获得电子密钥代码?

我有一个代码

var mainMenuContainer = document.getElementById('main-menu-container');
var mainMenuLinks = mainMenuContainer.getElementsByTagName('a');

function myFunction(links,i) {
    return function () {
        console.log(links[i]);
    }
}

for (var i = 0; i < mainMenuLinks.length; i++) {
    mainMenuLinks[i].onkeydown = myFunction(mainMenuLinks,i);
}

我现在可以获得按键发生的链接。我仍然需要获取链接上按下的键的 e.keycode。怎么办?
(我需要用老方法支持浏览器,所以代码是这样的)

解决方法

您可以使用 code,但我希望点击链接

强烈推荐

const mainMenuContainer = document.getElementById("main-menu-container");
const myFunction = (e) => {
  e.preventDefault();
  if (e.type==="keydown") console.log(e.code);
  const tgt = e.target; // or e.target.closest("a") if there are child elements of the link
  if (tgt.tagName === "A") {
    console.log(tgt.href)
  }
};
mainMenuContainer.addEventListener("keydown",myFunction); 
mainMenuContainer.addEventListener("click ",myFunction); 
<div id="main-menu-container">
  <a href="#home">Home</a> | <a href="#about">about</a>
</div>  

,

要不编辑您的 myFunction,您可以结束通话:

for (var i = 0; i < mainMenuLinks.length; i++) {
    var onKeyDownFunc = myFunction(mainMenuLinks,i);
    mainMenuLinks[i].onkeydown = function(e) {
       console.log(e.keycode);
       onKeyDownFunc();
    };
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。