0

我一直在使用 JQuery 的load();功能来加载网站的部分内容。

我一直在阅读虽然这可能看起来不错,但使用会破坏对 SEO 的任何希望,因此建议在我正在使用load()的链接选择器中保留一个真正的链接,因此当 Google 去抓取该链接时,它会发现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(),您可以告诉它解析出加载页面的某个部分。

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

这告诉 jQuery 加载about.php,但只附加#myContainer到元素。

文档:http ://api.jquery.com/load/#loading-page-fragments

于 2013-01-28T19:21:51.273 回答