我正在做一个项目,我需要暂时禁用所有超链接,然后在我的弹出 div 消失后再次启用它们。我可以使用我写的这个函数成功禁用所有链接:
function disableHyperlinks(){
link_targets = Array();
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
link_targets.push(anchors[i].href);
anchors[i].href= "#";
}
}
它还保存了所有 URL,以便以后可以使用此函数将它们放回去:
function enableHyperlinks(){
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
anchors[i].href= link_targets[i];
}
}
上面的代码似乎工作得很好,它删除了所有链接,然后将它们全部放回没有任何问题,但问题是如果我在单击链接后运行“启用”代码,它几乎就像 javascript正在将链接设置回原始目的地,然后注册点击。因此,尽管以这种方式被“禁用”,链接仍然最终离开页面。
问题在这里演示
单击带有白色背景的红色“L”以启用我为选择所做的 javascript,您会注意到将鼠标移到的任何内容都会出现蓝色虚线边框,我需要能够“选择”网页的某些部分如果还单击了链接,则无需重定向到另一个页面..知道如何正确执行此操作吗?
(请注意我试图避免使用 JQuery)