0

私はこのようなインターネットの周りのいくつかの仕事を見ました:

<a href="./someplace.html"> Link </a>

通常、リンクが開いているか、JSがアクティブでない場合は次のようになります。

http://www.domain.com/someplace.html

ただし、JSがアクティブな場合は、次のように開いて、ページを更新せずに外部ページを同じページにロードします。

http://www.domain.com/#/someplace.html

どうしてそれは可能ですか?誰かが助けることができますか?

私は最初にそれをグーグルしようとしました、そしてまたこのウェブサイトを検索しました、しかし良い答えを見つけられませんでした。

4

3 に答える 3

3
$("a").click(function() {
    var $this = $(this),
        href = $this.attr("href");

    $(document.body).load(href);

    location.href = "#" + href;
});

詳細については、 jQuery.fn.loadを参照してください。

于 2012-07-22T14:44:24.450 に答える
2

質問で例として提供したものは、hashに関連しています。

ハッシュは、現在のドキュメント内部のハイパーリンク参照です。

を使用しているリンクを見るとfile.html#name_of_smth、そのページのアンカーは のようになっている可能性があります<a name='name_of_smth'>blah</a>

これは必ずしも JavaScript のものではありません。ここで例示されているように、ハッシュと名前を使用してアンカーを構築する場合に使用できます。

JavaScript 経由で使用する場合は、変更するだけwindow.location.hashです。

FaceBook やその他のサイトが現在行っている方法の方が優れています。彼らはAJAXを使用してページにデータをリロードし(ここで他の回答で例示されているように)、ここで例示されているように使用window.history.pushState()て、新しいデータが別のURLに属していることをブラウザに通知します。これにより、リロードなしでアドレスバーの URL が変更され、正しいブックマークとリロード/更新が可能になります。

于 2012-07-22T15:32:20.677 に答える
0

AJAXを使用して新しいページをリクエストし、コンテンツを現在のページに挿入します。

この質問でこれについての詳細を書きました。

于 2012-07-22T14:42:38.780 に答える