我正在开发一个网站,我希望左侧菜单保持固定,同时加载单击选项的内容。
实际上,我所做的是每个使用 AJAX 的菜单链接都会返回请求的内容。一切正常,但我想避免它,因为那时很难跟踪统计数据(以及其他一些东西,比如谷歌靴子)。
没有javascript,我如何做同样的影响/相似(http://www.foundcrelamps.com/)?
我会做的有点不同。我会让菜单上的链接指向内容的有效链接。例如Contacte
指向http://www.foundcrelamps.com/contacte
这样,如果您将该链接粘贴到浏览器中,它将直接加载页面。
然后保留ajax,这样用户不会在每次点击时重新加载整个页面。
您可以使用History.js来保留浏览器历史记录并修改 URL,以便后退/下一步按钮工作,即使使用 ajax。
编辑,如果您使用a
带有标准的常规元素,href
它可能如下所示:
$('a').click(function(){
$('YOUR CONTAINER').load($(this).attr('href'));
return false; // so that it does not load the whole page
});
然后在服务器上你应该做这样的事情:
/* AJAX check */
$isAjax = false;
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest') {
$isAjax = true;
}
if (!$isAjax) {
outputHeader();
}
outputMainContent();
if (!$isAjax) {
outputFooter();
}
这样,当您执行 ajax 时,您将只加载内部内容。如果没有,它将加载整个页面。
还有一种替代方法 - 您可以使用 jQuery 加载整个页面,但只使用 html 的内部部分来替换原始内容。