测试看看是否用JQuery加载的页面加载()

时间:2013-01-28 18:31:16

标签: jquery load preventdefault

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

我一直在阅读,虽然这可能看起来不错,但使用load()会破坏搜索引擎优化的任何良好希望,所以建议在我正在使用的ahref链接选择器中保持真实链接,因此,当Google开始抓取该链接时,它会找到该内容。

然后,我刚刚使用JQuery的preventDefault();忽略了这个动作。

我的问题是,我说有类似

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

该文件about.php通常不会包含页眉或页脚,因为我已将它放在某个容器中,但是,我可以在about.php上对条件进行排序或测试吗?看看是否使用load();调用了它?因此,如果有人说要访问www.mysite.com/about.php,那么它会加载剩余的内容,使其看起来像普通页面吗?

3 个答案:

答案 0 :(得分: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包含在正确的位置以包含更多内容等。

答案 1 :(得分:2)

我一直这样做,以使其与pushState()一起使用。将您尝试加载的内容放入子文件夹(如pages / whatever.php),然后让普通页面包含您想要的所有内容(页眉,页脚等)并需要pages / whatever.php。对于jQuery .load(),只需拉入pages / file。

这有点单调乏味,但符合SEO标准且更加模块化。

答案 2 :(得分:1)

在我的网站上,我喜欢让它变得简单,所以我总是在页面中添加页眉/页脚。当您使用jQuery的.load()时,您可以告诉它解析加载页面的某个部分。

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

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

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