5

我有几个正在处理的网站正在通过灯箱加载子页面。实际内容是由 Google 找到的,但这些页面很可怕,因为它们并不打算加载所有标题和诸如此类的东西——这是用于灯箱交付的内容(ajax、fancybox)。

在 PHP 或 javascript 中(如有必要),我如何确定是否在灯箱中查看内容?最好抛出一个“查看原始页面”链接或其他东西。

4

3 回答 3

6

lightbox像所有其他类似的库一样,使用 AJAX 来提取内容......我不确定你是否可以检测它是否是标准,或者jquery因为它们都是相同的技术moottoolslightbox

您可以做的是检测您的页面是否被调用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" ;
}
于 2012-04-23T16:21:44.993 回答
3

灯箱通常使用 iframe 来显示外部页面。如果是这种情况(您可以使用 Firebug 检查 Lightbox 来检查这一点),您可以使用window.topJavaScript 来检查这一点。

if (window.top.location != window.location) {
    //this page is inside a frame or iframe
}
于 2012-04-23T16:22:15.187 回答
1

如果您使用带有默认选项的最新版本的 fancyBox,那么这个技巧应该可以工作 -

<?php echo (isset($_SERVER['HTTP_X_FANCYBOX']) && $_SERVER['HTTP_X_FANCYBOX']) ? 'is fancyBox' : 'is not fancyBox' ?>
于 2012-04-24T20:14:57.867 回答