I have several sites I'm working on that are loading sub-pages via lightbox. The actual content is being found by Google, but the pages are hideous as they aren't meant to load all the headers and whatnot - this is content intended for lightbox delivery (ajax, fancybox).
In PHP, or javascript if necessary, how might I determine if the content is being viewed in a lightbox or not? Would be nice to throw up a "view the original page" link or something.
lightbox
like every other similar lib use AJAX for pulling content ... am not sure sure if you can detect if it is a standard jquery
or moottools
or lightbox
because they all you the same technology
What you can do is detect if your page is been called via 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" ;
}
Lightboxes often use iframes to display external pages. If this is the case (you can inspect the Lightbox using Firebug to check this), you can use window.top
on JavaScript to check this.
if (window.top.location != window.location) {
//this page is inside a frame or iframe
}
If you are using the latest version of fancyBox with the default options then this trick should work -
<?php echo (isset($_SERVER['HTTP_X_FANCYBOX']) && $_SERVER['HTTP_X_FANCYBOX']) ? 'is fancyBox' : 'is not fancyBox' ?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With