1

Fancybox を介して開くか、fancybox なしで表示できるページがあります。このページがfancyboxを使用して開かれたかどうかをjavascriptで確認できますか?

4

3 に答える 3

2

これは外部ページなので、ほとんどの場合、fancybox を使用して開きます。"type":"iframe"

このコードをそのページ内に配置するだけです。

if(parent.jQuery().fancybox) {
 alert("I was opened inside fancybox");
}
于 2012-09-25T23:44:00.697 に答える
1

ファンシーボックスの中にいるかどうかをテストするために、この if 条件を使用します。

//IE7-8 Fix: when not in iframe parent equals self
if (self != parent && typeof parent.$.fancybox !== 'undefined') {
    //Code to execute when inside the fancybox
}

このソリューションでは、iframe を使用してページのコンテンツを Fancybox に表示し、iframe の親に fancybox プラグインがロードされているかどうかを確認する必要があります。

fancybox プラグインの 1.3.4 バージョンを使用しています。

于 2012-09-24T12:22:13.390 に答える
1

ファンシーボックス経由で表示されたページのページビューを追跡できます。

「利用規約」ページがあり、そのページへのリンクをフッター ナビゲーションに追加し、さらにサインアップ ページにリンクを追加したとします。

<a href="#" id="terms-and-conditions-link" >Terms & Conditions</a>

上記のリンクがポップアップで「利用規約」を開くように、ファンシー ボックス ポップアップを介して表示されるページのビューをキャプチャする方法を心配する人がいますが、そのようなページ ビューをキャプチャする非常に簡単な方法です。 jQuery と組み合わせた Google アナリティクス。

ここにコード

            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
            _gaq.push(['_trackPageview']);

            (function() {
                var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
            })();

            // explicitly triggering a page view for Google Analytic 
            $('#terms-and-conditions-link').click(function(){
                _gaq.push(['_trackPageview', '/terms-accessed-via-fancybox']);
            });

以下のコードは魔法のようです。「terms-accessed-via-fancybox」という名前のサイトのページにアクセスしたことを Google に明示的に伝えています。「terms-accessed-via-fancybox」を任意の文字列に変更できます。 .

_gaq.push(['_trackPageview', '/terms-accessed-via-fancybox']);

それがあなたを助けることを願っています:)

于 2012-09-24T12:07:16.460 に答える