noscript过滤添加超链接-清除JavaScript

noscript过滤添加超链接-清除JavaScript,javascript,jquery,noscript,Javascript,Jquery,Noscript,我的项目依靠JavaScript在超链接点击上动态显示内容。为了在不启用JavaScript的情况下使其干净地降级,我只需显示所有页面内容,并使用超链接和锚来连接各个部分 我依靠jQuery通过ID识别超链接的点击,因此如果没有JavaScript,我需要添加锚 这是noscript的一个很好的用途吗?主要是,这是否总是添加没有JavaScript的超链接 <div id="link1"> <noscript><a href="#link1content">

我的项目依靠JavaScript在超链接点击上动态显示内容。为了在不启用JavaScript的情况下使其干净地降级,我只需显示所有页面内容,并使用超链接和锚来连接各个部分

我依靠jQuery通过ID识别超链接的点击,因此如果没有JavaScript,我需要添加锚

这是noscript的一个很好的用途吗?主要是,这是否总是添加没有JavaScript的超链接

<div id="link1">
  <noscript><a href="#link1content"></noscript>
    1. Link Name Here
  <noscript></a></noscript>
</div>

元素包含其他元素,而不仅仅是标记。开始标记和结束标记必须在容器中。A会捡到这个的

不过,您首先不应该为此使用noscript。更大致的是:

<a class="enhanced_in_some_way" href="#link1content">1. Link Name Here</a>

…可能是前进的方向。

在许多浏览器中,这将起作用,但我不推荐它。它完全破坏了HTML的结构,并不能保证在所有浏览器中都能正常工作,甚至不能保证在将来的浏览器版本中也能正常工作。

实际上,这里不需要noscript。默认情况下,将锚定目标放在超链接中,在jQuery或javascript单击函数中,以
返回false
事件完成。preventDefault()。如果启用JavaScript,这将阻止链接被跟踪;如果禁用JavaScript,将导致跟踪锚。您可以用最小的开销实现双向覆盖

jQuery('a.enhanced_in_some_way').click(function (event) {
    var link = this;
    var name = /#([^#]+$)/.exec(link.href);
    do_something_with(name);
    event.preventDefault();

});