防止`<a>`标签重定向

问题描述 投票:0回答:1

我正在尝试创建一个带有音乐播放器的单页应用程序。这就是为什么我想阻止

<a>
标签重定向,从而导致播放器停止。 我尝试了几种方法,例如:

document.addEventListener('click', event => {
    if (event.target.tagName === 'A') {
        event.preventDefault();
        navigate(event.target.href);
    }
});

document.addEventListener('DOMContentLoaded', () => {
    const links = document.querySelectorAll('a');
    links.forEach(link => {
        link.addEventListener('click', event => {
            event.preventDefault();
            navigate(event.target.href);
        });
    });
});

<body onload="preventRedirect()">...</body>
function preventRedirect(){
    const links = document.querySelectorAll("a");
    links.forEach(link => {
        link.addEventListener("click", event => {
            event.preventDefault();
            navigate(link.href);
        })
    })
}

这些都不起作用。然而,奇怪的是,如果我手动执行该函数或在控制台内添加事件侦听器,一切最终都会按预期工作。 我知道我应该使用按钮,但这会破坏我的设计美感。 我尝试过将

href
设置为“#”并使用
onclick
进行导航,这可行,但很乏味,我希望我最初的想法最终能够实现。

javascript html hyperlink href
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.