3

私はこれをうまく説明していません。

しかし、私が言いたいのは、関数「loadpage('whatever.php');」を介してDIV要素にページのコンテンツをロードするajaxスクリプトがある場合、すべてのリンクに対して手動でこれを行うのではなく、そのajax関数を介してすべての通常のリンクを自動的にロードするスクリプトを作成する方法はありますか?

Facebook と同様に、プロファイルは ajax を介して読み込まれますが、コードを見ると、プロファイルへの通常のリンクしかありません。

乾杯!

4

4 に答える 4

7

もちろんjQueryでもできます。

このスクリプトはドキュメントを調べ、すべてのアンカー要素を見つけて、イベント ハンドラーをそれぞれのクリック イベントにバインドします。アンカー要素がクリックされると、イベント ハンドラーは href 属性を見つけて、そのページを #targetDiv に読み込みます (もちろん、この div は好きなように呼び出すことができます)。

<script type="text/javascript"
        src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
  $("a").click(function() {
    $("#targetDiv").load(($(this).attr("href") + " body");
    return false;
  });
});
</script>

...

<!-- In your document body, this is the div you'd load the pages into. -->
<div id="targetDiv"></div>
于 2009-09-19T17:48:11.700 に答える
1

これにはJQueryを使用できます(あなたの質問を正しく理解していれば)。

最初に、関数 loadpage() を次のように作成できます。

function loadpage(divId, url) {
    $('#' + divId).load(url);

    return false;
}

ただし、.load() はすべてのブラウザでサポートされているわけではありません。.load() なしでこれを行いたい場合は、.get() を確認できます。.load() の詳細については、 http: //docs.jquery.com/Ajax/load をご覧ください。

于 2009-09-19T17:49:55.903 に答える
1

私はそれが次のようになると仮定しています:

$(document).ready(function(){
    $("a").click(function(){
        $("body").load($(this).attr("href") + " body");
        return false;
    });
});

これにより、ページ上のすべてのタグが、タグの属性から HTML ドキュメントをダウンロードし、body タグを取り除き、現在のページの body タグのコンテンツを新しい body タグのコンテンツに置き換える<a>関数を呼び出すようになります。hrefこのように、JavaScript を使用せずにこれを簡単に操作できるだけでなく、既存のサイトに統合することもできます。

これを使用するには、これを<script>メイン ページの head 内のタグに配置するか、外部 JS ファイルに配置します。

ただし、このコードは<body>タグの内容を更新するだけであり、head (タイトル タグを含む) は変更されないことに注意してください。このようなものを更新するには、追加のコードを追加する必要がある場合があります。

于 2009-09-19T17:52:52.387 に答える