1

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

4

3 回答 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 回答