5

ライトボックスを介してサブページをロードしているいくつかのサイトに取り組んでいます。実際のコンテンツは Google によって検出されていますが、すべてのヘッダーなどをロードするためのものではないため、ページは恐ろしいものです。これは、ライトボックス配信 (ajax、fancybox) を目的としたコンテンツです。

PHP、または必要に応じて JavaScript で、コンテンツがライトボックスで表示されているかどうかを判断するにはどうすればよいですか? 「元のページを表示」リンクか何かを投げるといいでしょう。

4

3 に答える 3

6

lightboxjquery他のすべての同様のライブラリと同様に、コンテンツをプルするためにAJAXを使用します...それが標準であるか、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" ;
}
于 2012-04-23T16:21:44.993 に答える
3

ライトボックスは、iframe を使用して外部ページを表示することがよくあります。この場合 (Firebug を使用してライトボックスを調べてこれを確認できます)、window.topon JavaScript を使用してこれを確認できます。

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 に答える