Fancybox を介して開くか、fancybox なしで表示できるページがあります。このページがfancyboxを使用して開かれたかどうかをjavascriptで確認できますか?
3 に答える
これは外部ページなので、ほとんどの場合、fancybox を使用して開きます。"type":"iframe"
このコードをそのページ内に配置するだけです。
if(parent.jQuery().fancybox) {
alert("I was opened inside fancybox");
}
ファンシーボックスの中にいるかどうかをテストするために、この 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 バージョンを使用しています。
ファンシーボックス経由で表示されたページのページビューを追跡できます。
「利用規約」ページがあり、そのページへのリンクをフッター ナビゲーションに追加し、さらにサインアップ ページにリンクを追加したとします。
<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']);
それがあなたを助けることを願っています:)