我有一个页面,既可以通过Fancybox打开,也可以在没有fancybox的情况下查看。我可以在javascript中以某种方式检查此页面是否使用fancybox打开?
答案 0 :(得分:2)
由于这是一个外部网页,您最有可能使用fancybox使用"type":"iframe"
您可以简单地将此代码放在该页面中:
if(parent.jQuery().fancybox) {
alert("I was opened inside fancybox");
}
答案 1 :(得分:1)
您可以跟踪通过fancy-box查看的页面的页面浏览量。
我们假设您有一个“条款和条件”页面,并且您在页脚导航中添加了指向该页面的链接,并且您已在注册页面上添加了一个链接。
<a href="#" id="terms-and-conditions-link" >Terms & Conditions</a>
由于上面的链接在弹出窗口中打开了“条款和条件”,但人们担心如何捕获通过精美框弹出窗口查看的页面视图,这是一种非常简单的方法来捕获此类页面视图,你可以使用谷歌分析结合jQuery。
这里是代码
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']);
});
以下代码正在发挥作用,您明确告诉Google您的网站上名为“terms-accessible-via-fancybox”的页面已被访问,您可以将“terms-accessible-via-fancybox”更改为任何你想要的字符串。
_gaq.push(['_trackPageview', '/terms-accessed-via-fancybox']);
希望它可以帮助你:)
答案 2 :(得分:1)
我使用此if条件来测试我是否在fancybox中:
//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版本。