我有一个页面,既可以通过 Fancybox 打开,也可以在不使用 fancybox 的情况下查看。我可以在javascript中以某种方式检查这个页面是否是使用fancybox打开的吗?
			
			2727 次
		
3 回答
            2        
        
		
由于这是一个外部页面,您很可能会使用 fancybox 打开它"type":"iframe"
您可以简单地将这段代码放在该页面中:
if(parent.jQuery().fancybox) {
 alert("I was opened inside fancybox");
}
    于 2012-09-25T23:44:00.697   回答
    
    
            1        
        
		
您可以跟踪通过花式框查看的页面的页面浏览量。
假设您有一个“条款和条件”页面,并且您在页脚导航中添加了一个指向该页面的链接,并且您在注册页面上添加了一个链接。
<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-accessed-via-fancybox”的页面已被访问,您可以将“terms-accessed-via-fancybox”更改为您想要的任何字符串.
_gaq.push(['_trackPageview', '/terms-accessed-via-fancybox']);
希望它可以帮助你:)
于 2012-09-24T12:07:16.460   回答
    
    
            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 插件。
我正在使用 1.3.4 版本的 fancybox 插件。
于 2012-09-24T12:22:13.390   回答