Wie kann ich feststellen, ob die Seite über die Lightbox angezeigt wird?

Lesezeit: 2 Minuten

Ich arbeite an mehreren Websites, die Unterseiten über Lightbox laden. Der eigentliche Inhalt wird von Google gefunden, aber die Seiten sind scheußlich, da sie nicht dazu gedacht sind, alle Kopfzeilen und so weiter zu laden – dies ist Inhalt, der für die Bereitstellung von Lightboxen (Ajax, Fancybox) vorgesehen ist.

Wie kann ich in PHP oder ggf. Javascript feststellen, ob der Inhalt in einer Lightbox angezeigt wird oder nicht? Wäre schön, einen Link “Originalseite anzeigen” oder so hochzuwerfen.

  • Ich weiß, dass Fancybox mit AJAX-Daten und Iframes umgehen kann. Wenn letzteres der Fall ist, können Sie den src des iframe abrufen. Wenn es ersteres ist, können Sie es in ein div packen, das vielleicht ein hat data-url Attribut der URL.

    – CWSpeer

    23. April 2012 um 16:05 Uhr

  • Ich habe das versucht data-url Methode und schien es nicht dazu zu bringen, etwas zu tun. Vielleicht verstehe ich es nicht gut genug. Die beste Info, die ich dazu finden konnte, war hier: forum.jquery.com/topic/… und das hatte nicht eine Menge Informationen.

    – GhostToast

    23. April 2012 um 16:24 Uhr

lightbox wie jede andere ähnliche Bibliothek AJAX zum Abrufen von Inhalten verwenden … bin mir nicht sicher, ob Sie erkennen können, ob es sich um einen Standard handelt jquery oder moottools oder lightbox weil sie alle die gleiche Technologie haben

Was Sie tun können, ist zu erkennen, ob Ihre Seite über aufgerufen wurde 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" ;
}

  • Ja! Vielen Dank. Das ist genau das, wonach ich gesucht habe.

    – GhostToast

    23. April 2012 um 16:29 Uhr

Lightboxen verwenden häufig Iframes, um externe Seiten anzuzeigen. Wenn dies der Fall ist (Sie können die Lightbox mit Firebug überprüfen, um dies zu überprüfen), können Sie verwenden window.top auf JavaScript, um dies zu überprüfen.

if (window.top.location != window.location) {
    //this page is inside a frame or iframe
}

Wenn Sie die neueste Version von fancyBox mit den Standardoptionen verwenden, sollte dieser Trick funktionieren –

<?php echo (isset($_SERVER['HTTP_X_FANCYBOX']) && $_SERVER['HTTP_X_FANCYBOX']) ? 'is fancyBox' : 'is not fancyBox' ?>

  • Bei Verwendung von Fancybox 2.1.5, der aktuellen Produktionsversion, wurde sowohl in FancyBox als auch beim direkten Laden der Seite “ist nicht fancyBox” gemeldet.

    – jerrygarciuh

    10. Mai 2016 um 17:05 Uhr

1361480cookie-checkWie kann ich feststellen, ob die Seite über die Lightbox angezeigt wird?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy