如何使用' a'标签和noscript正确替代内容?

时间:2017-05-13 20:32:34

标签: javascript html css

我无法将我的解决方案传递给W3C有效。 我想通过这种方式为禁用JS的访问者显示替代网址:

<a href="javascript:void();"><noscript><a href="nojspage.html"></noscript>some anchor text</a>

它完美无瑕 - 一个弹出窗口&#39;对于启用了JS的访问者开放,所有其他人都被定向到html页面。

然而,由于a标签的非法嵌套,验证器在那时断开了。

所以我想使用一个锚文本(比这个例子长很多)有多个标签(一个调用JS,另一个调用常规链接)。由JS显示锚文本不是一个选项,因为我在导航菜单中有很多类似的链接。

我只是想知道如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

执行此操作的正确方法是使用渐进增强而不是noscript

从常规链接开始。然后将JS层放在最上面,如果JS成功,则停止跟踪链接。

<a href="nojspage.html">some anchor text</a>
<script>

    function myJsFunction(evt) {
        // Do something with JS
        evt.preventDefault(); // Prevent the link from being followed
    }

    document.querySelector("a").addEventListener("click", myJsFunction);
</script>

答案 1 :(得分:-1)

你的noscript标签在标签关闭之前关闭,这就是验证者抱怨的原因