【问题标题】:noscript to filter add hyperlinks - Clean JavaScript degradenoscript 过滤添加超链接 - 清理 JavaScript 降级
【发布时间】:2010-11-18 21:37:32
【问题描述】:

我的项目依赖于 JavaScript 在点击超链接时动态显示内容。为了让它在不启用 JavaScript 的情况下完全降级,我只是显示所有页面内容并使用超链接和锚点来连接各个部分。

我是靠 jQuery 通过 ID 来识别超链接的点击,所以没有 JavaScript 我需要在锚点中添加。

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

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

【问题讨论】:

    标签: javascript jquery noscript


    【解决方案1】:

    元素包含其他元素,而不仅仅是标签。开始标签和结束标签必须在容器中。 validator 会选择这个。

    不过,您一开始就不应该为此使用 noscript。更多类似的东西:

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

    与

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

    ……可能是前进的方向。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        其实这里不需要noscript。默认情况下,将锚目的地放入超链接中,并在您的 jQuery 或 javascript 点击函数中,以return false 或event.preventDefault(); 结尾。如果 JavaScript 被启用,这将阻止链接被跟踪,如果它被禁用,则会导致被跟踪的锚点。以最少的开销为您提供双向保障。

        【讨论】:

          猜你喜欢
          • 2015-10-22
          • 2017-12-18
          • 1970-01-01
          • 1970-01-01
          • 2013-08-27
          • 2015-07-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多