2010-11-18 7 views
5

私のプロジェクトではJavaScriptを使用して、ハイパーリンクのクリックでコンテンツを動的に表示しています。 JavaScriptを有効にせずに正常に機能しないようにするには、単にすべてのページコンテンツを表示し、ハイパーリンクとアンカーを使用して作品を接続します。noscript toハイパーリンクの追加 - JavaScriptのクリーンアップ

私はハイパーリンクのクリックをIDで識別するためにjQueryを使用しています。したがって、JavaScriptがなければアンカーを追加する必要があります。

これはnoscriptを使用するのに適していますか?主に、これはJavaScriptなしでハイパーリンクを追加しますか?

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

答えて

5

要素だけではなく、タグ、他の要素が含まれています。開始タグと終了タグはコンテナ内になければなりません。 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(); 

}); 

と...おそらく前方の方法です。

0

多くのブラウザでこれは動作しますが、お勧めしません。これはHTMLの構造を完全に破っており、すべてのブラウザで動作することが保証されているわけではなく、現在動作しているブラウザの将来のバージョンでも動作するとは限りません。

0

実際、ここではnoscriptは必要ありません。デフォルトではアンカー先をハイパーリンクに置き、jQueryまたはjavascriptのクリック機能では、return falseまたはevent.preventDefault();で終了します。これにより、JavaScriptが有効になっている場合はリンクが辿られなくなり、無効の場合はアンカーが続きます。最小のオーバーヘッドで両方の方法をカバーしています。

関連する問題