0

私はJQueryのload();関数を少し使って、サイトのコンテンツの一部をロードしてきました。

私はこれが見栄えがするかもしれないが、SEOへの良い希望を台無しにすることを読んでいるので、私が使用しているリンクセレクターload()内に実際のリンクを保持することが提案されています。ahrefコンテンツ。

次に、JQueryを使用してそのアクションを無視してきましたpreventDefault();

私の質問は、私が次のようなものを持っていると言うことです

$('#mylink').click(function(a) {
   a.preventDefault();
   $('myContainer').load('about.php');
});

そのファイルはabout.php、すでにいくつかのコンテナー内に配置されているため、通常はヘッダーまたはフッターを含みませんが、about.phpを使用して呼び出されたかどうかを確認するための条件またはテストを行うことはできload();ますか?誰かが訪問www.mysite.com/about.phpと言った場合、残りのコンテンツが読み込まれ、通常のページのように見えますか?

4

3 に答える 3

2

確かに、PHPファイルでは、ページがajaxで要求されたかどうかを検出し、要求されなかった場合はヘッダーとフッターを含めることができます。

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && 
     strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    //requested with ajax
}else{
    //not ajax, include more content
}

同じように簡単に変数を作成し、それを使用してPHPインクルードを正しい場所にトリガーし、より多くのコンテンツなどを含めることができます。

于 2013-01-28T18:34:28.490 に答える
2

pushState()で動作させるために、これを常に行っています。ロードしようとしているコンテンツをpages/whatever.phpなどのサブフォルダーに入れ、通常のページに必要なすべてのコンテンツ(ヘッダー、フッターなど)を含め、pages/whatever.phpを要求します。jQuery .load()の場合は、pages/ファイルをプルするだけです。

それはやや退屈ですが、SEOに準拠しており、はるかにモジュール化されています。

于 2013-01-28T18:36:07.033 に答える
1

私のサイトでは、簡単にするのが好きなので、常にヘッダー/フッターをページに追加しています。jQueryを使用する.load()と、読み込まれたページの特定の部分を解析するようにjQueryに指示できます。

$('myContainer').load('about.php #myContainer');

これはjQueryにロードするように指示しますが、要素にabout.php追加するだけです。#myContainer

ドキュメント:http ://api.jquery.com/load/#loading-page-fragments

于 2013-01-28T19:21:51.273 に答える