3

私が見たほとんどの jquery ディープ リンク プラグインでは、リンクに「#」を付ける必要がありました。これは例です:

<a href="#page1.html">Page 1</a>

Twitter でさえこれを行います (ただし、Twitter は を使用したクロール可能なリンクの Google 仕様に従います#!。これは、Jquery BBQ や Jquery Address などの jquery ディープ リンク ライブラリでもサポートされています)。

新しいtwitterでJavascriptをオフにしたら動かなくなりました。Javascript をオフにしても、ディープ リンクを適用してサイトを機能させることができるかどうかを知りたくて、この質問をしています。

前もって感謝します!

4

3 に答える 3

5

これは、 HTML5を使用して可能になるはずです。最近、このテーマに関する情報を検索したところ、この非常に興味深いライブラリ History.jsが見つかりました。

可能な場合はハッシュなしのディープリンクにHTML5を使用し、それ以外の場合はハッシュ付きのHTML4を使用します (そうする場合は何もしません)。

History.js の作成者によるこの記事も一読の価値があります。

于 2011-11-02T11:12:02.860 に答える
3

いいえ - AJAX を使用してディープ リンクする場合は、この方法で機能させる必要があります。アンカーは、ページをリロードせずに更新できる URL の唯一の部分です。通常、サーバーにも送信されないため、常にブラウザーによって処理されます。

できることの 1 つは、aタグに実際のリンクを含め、jQuery を使用してリンクを更新することです。

<a href="page1.html" class="ajaxLoad">Page 1</a>

<script>
$(function(){
  $("a.ajaxLoad").each(function(){ this.href = '#' + this.href })
});
</script>

JavaScript が無効になっていると、ユーザーがリンクをクリックすると「page1.html」にリダイレクトされます。それ以外の場合、リンクはアンカーに変更され、ディープ リンク コードでそれを取得できるはずです。このような利点は、非 JavaScript ブラウザーがリンクを正しく使用できることです (これには検索エンジンのスパイダーも含まれます)。


編集: ご存知のように、JavaScript を使用して変更するのではなく、できることがいくつかあります。たとえば、リンクのクリック ハンドラーにアタッチし、loadまたは何かを使用して、ページをロードする領域を変更できます。

$("a.ajaxLoad").click(function(e){
    e.preventDefault();
    $("#content").load(this.href + ' #content');
});
于 2011-01-10T08:17:06.027 に答える
2

アンカーは、ページ全体をリロードせずに変更できる唯一の部分です。したがって、定義上、他の方法はありません。また、定義上、アンカーはサーバーに渡されないため、javascriptをオフにすると、これは明らかに機能しません。

于 2011-01-10T08:12:56.273 に答える