确定当前窗口是否使用fancybox打开?

时间:2012-09-24 11:25:58

标签: javascript asp.net-mvc-3 fancybox

我有一个页面,既可以通过Fancybox打开,也可以在没有fancybox的情况下查看。我可以在javascript中以某种方式检查此页面是否使用fancybox打开?

3 个答案:

答案 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版本。