![]() 最近发现Google Website Optimizer在IE6中的表现非常不稳定,以前在里边直接写CSS,写JAVASCRIPT,都没有问题,但现在如果在里边写JAVASCRIPT,实际上在IE6中通常不执行!如果这样,测试的数据没有任何意义!
为了修正这个问题,尝试用以前写的一个《服务器端自已分配测试比例进行A/B测试__Google Website Optimizer 》来解决,这样是可以解决的,但是服务器端的部署代码就变得很臃肿,所以,今天想了一个简单的办法,来解决这个问题!
原理:
如果你开启了一个多变量的测试,里边算上原始版本一共2个版本的话,原始版本的最后一位都是0,而其它的会以加入的次序从1开始往后推,如1、2、3……;这样就好办了!只是我们能拿到最后一位就可以知道当前是哪个版本了!
假如我开始了一个实验,实验的ID是2506888888,这时你要吧通过以前作的一个工具:http://www.zishu.cn/s/tool/showOptCookie.php 去GOOGLE的服务拿到一个完整的UTMX COOKIE的值“00005423942506888888:3:0”;从这个值上来看,现在的版本应该是原始版:)
代码:
 程序代码 <script> var testVersion = 0; //默认我们从原始版开始
//取COOKIE的一个方法 function readCookie(name){ var cookieValue = ""; var search = name + "="; if(document.cookie.length > 0) { offset = document.cookie.indexOf(search); if (offset != -1){ offset += search.length; end = document.cookie.indexOf(";", offset); if (end == -1){ end = document.cookie.length; } cookieValue = decodeURIComponent(document.cookie.substring(offset, end)) } } return cookieValue; } </script>
<script> var cUtmx = readCookie('__utmx'); //先取到COOKIE var testKey = '00007078412911612456:3:'; //这里我把最后一位去除了,因为我们不知道当前是哪个版本 var sL = cUtmx.indexOf(testKey); //去COOKIE中看一下这个值有没有,并在哪个位置 if(sL != -1){ sL += testKey.length; testVersion = cUtmx.substring(sL, sL+1); //如果有,就拿到一个版本 } </script>
这样,在客户端,我们只要看testVersion是几就知道当前是哪个版本了! 这样布属起来方便多了,面且不会有IE6中的问题!代码比较粗糙,明白意思就行了!
以前写的关于Google Website Optimizer相关文章: 1、《多目标测试_ Google Website Optimizer 》 2、《服务器端自已分配测试比例进行A/B测试__Google Website Optimizer 》
|