我有一个登录页面。成功登录用户后重定向到作为ASCX页面的主页面。我在其中使用了div
元素。
<div title="Main" id="main">
<a href="/Home.aspx" id="home">
<div class="link-title">
Home
</div>
</a>
</div>
<div title="Contact" >
<a href="/Contact.aspx" id="contact>
<div class="link-title">
Contact
</div>
</a>
</div>
我希望在 TAB 键期间按下特定锚标签上的焦点,然后按 ENTER 按键,它会重定向到特定的链接页面。
Anchor标签工作正常。但我想要的是,当它打开特定的链接页面并重新加载页面时,焦点应保留在该特定链接上。
这样,在下一个 TAB 键上,按导航/焦点移动到下一个锚标记。我使用了以下JS代码,但在页面加载时它显示运行时错误:
无法获取属性“
addEventListener
”的值:object为null或undefined
var el = document.getElementById('main');
el.addEventListener("keydown", storeLinkId, false);
//function stores ID attribute of target link
//into session storage if enter is pressed
function storeLinkId(e) {
if (!e) e = window.event;
var keyCode = e.keyCode || e.which;
if (keyCode == '13') {
console.log("storing " + e.target.id);
sessionStorage.setItem('tabbed-link', e.target.id);
}
}
//if there is a linkid in session storage
if (sessionStorage.getItem('tabbed-link')) {
//get the id from session storage
var linkId = sessionStorage.getItem('tabbed-link');
//focus on the link with the matching id attribute
document.getElementById(linkId).focus();
//delete the linkid from session storage
sessionStorage.removeItem('tabbed-link');
}
在添加事件侦听器之前,我还尝试使用此代码检查el
是否为null,但没有得到解决方案:
var el = document.getElementById('main');
if(el) {
el.addEventListener("keydown", storeLinkId, false);
}
处理此错误的确切代码应该是什么?