我有几个正在处理的网站正在通过灯箱加载子页面。实际内容是由 Google 找到的,但这些页面很可怕,因为它们并不打算加载所有标题和诸如此类的东西——这是用于灯箱交付的内容(ajax、fancybox)。
在 PHP 或 javascript 中(如有必要),我如何确定是否在灯箱中查看内容?最好抛出一个“查看原始页面”链接或其他东西。
lightbox
像所有其他类似的库一样,使用 AJAX 来提取内容......我不确定你是否可以检测它是否是标准,或者jquery
因为它们都是相同的技术moottools
lightbox
您可以做的是检测您的页面是否被调用AJAX
function isAjax() {
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest");
}
if(isAjax())
{
die("Don't Use AJAX");
}
else
{
echo "WELCOME" ;
}
灯箱通常使用 iframe 来显示外部页面。如果是这种情况(您可以使用 Firebug 检查 Lightbox 来检查这一点),您可以使用window.top
JavaScript 来检查这一点。
if (window.top.location != window.location) {
//this page is inside a frame or iframe
}
如果您使用带有默认选项的最新版本的 fancyBox,那么这个技巧应该可以工作 -
<?php echo (isset($_SERVER['HTTP_X_FANCYBOX']) && $_SERVER['HTTP_X_FANCYBOX']) ? 'is fancyBox' : 'is not fancyBox' ?>