2016-02-05 22 views
2

我目前有一个网站使用<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, maximum-scale=1.0" />来使页面响应。仅在使用javascript的非移动浏览器上插入Google实验代码

我想克服的问题是在两个版本的主页上使用谷歌变体测试,但只有人查看完整的网站包括在内。

我提出的解决办法是检测浏览器是否为移动设备,如果没有显示解析代码:

<!-- Google Analytics Content Experiment code --> 
<script>function utmx_section(){}function utmx(){}(function(){var 
k='13292219-1',d=document,l=d.location,c=d.cookie; 
if(l.search.indexOf('utm_expid='+k)>0)return; 
function f(n){if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c. 
indexOf(';',i);return escape(c.substring(i+n.length+1,j<0?c. 
length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;d.write(
'<sc'+'ript src="'+'http'+(l.protocol=='https:'?'s://ssl': 
'://www')+'.google-analytics.com/ga_exp.js?'+'utmxkey='+k+ 
'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='+new Date(). 
valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+ 
'" type="text/javascript" charset="utf-8"><\/sc'+'ript>')})(); 
</script><script>utmx('url','A/B');</script> 
<!-- End of Google Analytics Content Experiment code --> 

有没有人有什么建议?

+0

我不确定你在问什么,但在客户端的浏览器检查是不可靠的,所以你最好处理它的服务器端。 – A1rPun

回答

0

我所提出的解决方案将是,以检测浏览器是否是移动设备,并且如果未显示的解析代码:

一种方法是使用javascript等效CSS @media queries的,这是

window.matchMedia(); 

标准的CSS @media query检测移动浏览器可能是:

@media only screen and (min-device-width:320px) and (max-device-width:480px) 

javascript相当于是:

window.matchMedia("(min-device-width:320px) and (max-device-width:480px)"); 

所以你可以有这样的:

var screen320x480 = window.matchMedia("(min-device-width:320px) and (max-device-width:480px)"); 
var screen320x568 = window.matchMedia("(min-device-width:320px) and (max-device-width:568px)"); 

if ((screen320x480.matches) || (screen320x568.matches)) { 

[...CODE HERE...] 

} 

else { 

[...DISPLAY ANALYTICS CODE HERE...] 

} 

延伸阅读:

+0

如何将代码放入?其他位,只是把它放进去? –

+0

这是我第一次尝试(在删除''后),是的。 – Rounin

+0

这不起作用,它必须与分析代码的构建方式有关。 –

相关问题