我有一个页面,既可以通过 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 回答