一个下载落地页面地址,页面保持不变,需要按他所带的参数,自动更新对应的下载地址,每个参数对应一套专属下载链接,如果不带参数或参数未配置的则使用默认的下载地址,同时统计代码事件参数也要加上对应参数标记。
如http://www.example.com?channel=cover_tb 、 http://www.example.com?channel=cover_tb 、http://www.example.com
这样对外,页面是相同的,只改对应的下载地址。
页面说明:
下载落地页,有电脑版和手机版之分,二者是互跳的。
电脑版的下载代码如下:
<div class="download">
<a href="and.html" target="_blank" class="appstore" onclick="_hmt.push(['_trackEvent', '超首', 'click', '点iOS下载'])"></a>
<a href="ios.html" target="_blank" class="android" onclick="_hmt.push(['_trackEvent', '超首', 'click', '点安卓下载'])"></a>
<a href="mumu.html" target="_blank" class="lei" onclick="_hmt.push(['_trackEvent', '超首', 'click', '点模拟器下载'])"></a>
<div class="ewm"><img src="images/qrcode.png" alt=""></div>
</div>
手机版的下载代码如下:
<div class="download">
<a href="dl.html" onclick="_hmt.push(['_trackEvent', '超首m', 'click', '点下载按钮'])"><img src="images/download.png" alt=""></a>
</div>
处理办法
JS判断地址中的channel值,如果存在列表里的,则自动替换相应的链接值,JS代码如下:
function getsystem() {
if(navigator.userAgent.indexOf("iPhone") != -1 || navigator.userAgent.indexOf("iPad") != -1 )return 'iphone';
else if( navigator.userAgent.indexOf("Android") != -1)return 'Android';
else return 'windows';
}
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return false;
}
var down_link_510084=[{
'pc':[
{channel:'cover_tb',channel_name:'贴吧品牌',link:['http://www.example.com/1203yS','http://www.example.com/81UBE2','http://www.example.com/ncO3l0','http://www.example.com/images/417.png']},
{channel:"cover_kol",channel_name:'微博KOL',link:['http://www.example.com/j3V948','http://www.example.com/o9d4GG','http://www.example.com/pTHBS7','http://www.example.com/images/413.png']},
{channel:"cover_wb",channel_name:'微博官方',link:['http://www.example.com/3754o4','http://www.example.com/t7033v','http://www.example.com/ou866D','http://www.example.com/images/409.png']},
{channel:"cover_wx",channel_name:'微信官方',link:['http://www.example.com/yt6j46','http://www.example.com/47xB0p','http://www.example.com/ccE344','http://www.example.com/images/405.png']},
{channel:"cover_mt",channel_name:'媒体分包',link:['http://www.example.com/aI8bPs','http://www.example.com/94o1eh','http://www.example.com/9NdkBf','http://www.example.com/images/401.png']},
{channel:"cover_xw",channel_name:'新闻客户端',link:['http://www.example.com/VF789d','http://www.example.com/1Im72X','http://www.example.com/2H0dxZ','http://www.example.com/images/397.png']}
]
},{
'mobile':[
{channel:'cover_tb',link:['http://www.example.com/3POf7e']},
{channel:"cover_kol",channel_name:'微博KOL',link:['http://www.example.com/m6n333']},
{channel:"cover_wb",channel_name:'微博官方',link:['http://www.example.com/Y67371']},
{channel:"cover_wx",channel_name:'微信官方',link:['http://www.example.com/37P2oE']},
{channel:"cover_mt",channel_name:'媒体分包',link:['http://www.example.com/I38460']},
{channel:"cover_xw",channel_name:'新闻客户端',link:['http://www.example.com/699h86']}
]
}
];
function set_link_config(){
var channel=getQueryVariable("channel"),sys_os=getsystem(),link_arr=[];
if(sys_os=="windows")link_arr=down_link_510084[0].pc;else link_arr=down_link_510084[1].mobile;
if(channel){
var home_link=$("#home").attr("href");
$("#home").attr("href",home_link+"?channel="+channel);
var link1=null,link2=null,link3=null,rcodelink=null,channel_name="";
for(var s in link_arr){
if(link_arr[s].channel==channel){
link1=link_arr[s].link[0];channel_name=link_arr[s].channel_name;
if(sys_os=="windows"){
link2=link_arr[s].link[1];link3=link_arr[s].link[2];rcodelink=link_arr[s].link[3];
}
break;
}
}
//得到了n个link 下面开始赋值
$("div.download").find("a:eq(0)").attr("href",link1);
if(link2)$("div.download").find("a.android").attr("href",link2);
if(link3)$("div.download").find("a.lei").attr("href",link3);
if(rcodelink)$("div.download").find("div.ewm").find("img").attr("src",rcodelink);
//替换baidu统计
var s=$("div.download").html();
s=s.replace("点下载按钮","点下载按钮"+channel_name);s=s.replace("点iOS下载","点iOS下载"+channel_name);
s=s.replace("点安卓下载","点安卓下载"+channel_name);s=s.replace("点模拟器下载","点模拟器下载"+channel_name);
$("div.download").html(s);
}
}
$(function(){
set_link_config();
});
呵呵呵