簡體   English   中英

noscript過濾添加超鏈接-干凈的JavaScript降級

[英]noscript to filter add hyperlinks - Clean JavaScript degrade

我的項目依靠JavaScript在超鏈接單擊上動態顯示內容。 為了在不啟用JavaScript的情況下使其完全降級,我僅顯示所有頁面內容,並使用超鏈接和錨點連接各個部分。

我依靠jQuery通過ID來識別超鏈接的點擊,因此如果沒有JavaScript,我需要添加錨點。

這是noscript的好用法嗎? 主要是,這是否總是在沒有JavaScript的情況下添加超鏈接?

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

元素包含其他元素 ,而不僅僅是標簽。 開始標簽和結束標簽必須在容器中。 驗證者會選擇這個。

但是,您首先不應該為此使用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();

});

……可能是前進的道路。

在許多瀏覽器中,這都可以,但是我不建議這樣做。 它完全破壞了HTML的結構,並且不能保證在所有瀏覽器甚至現在可以使用的將來版本的瀏覽器中都能正常工作。

實際上,您在這里不需要noscript。 默認情況下,將錨點目標放入超鏈接中,並在jQuery或javascript click函數中,以return falseevent.preventDefault(); 如果啟用了JavaScript,這將防止鏈接被跟蹤,如果禁用,則會導致跟隨的錨點。 您可以用最少的開銷覆蓋這兩種方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM