• Home
  • About
    • Pretend To Write Like A Hacker photo

      Pretend To Write Like A Hacker

      besteric

    • Learn More
    • Twitter
    • Instagram
    • Github
    • Weibo
  • Posts
    • All Posts
    • All Tags
  • Projects

Something about Work

Reading time ~1 minute

最近负责淘宝首页的一些需求,开始写一些简单的Javascript,主要是基于淘宝的开源前端框架Kissy

简单的显示逻辑

` /**

  • 阿拉丁系统定投广告 *
  • @creator [email protected]
  • @depends ks-core * 1 从首页Cookie取得tracknick,传给后台回调取得JSON格式的数据 2 读取淘宝商城品牌墙的标签,如果存在data-ald属性的话将JSON数据填充(前提条件不为空) **/

FP.add(‘ald’, function(S) { S.namespace(‘Ald’);

S.Ald.init = function() {

	var NICK = decode(S.Cookie.get("_nk_")) || decode(S.Cookie.get("tracknick")),
	tms_product = S.query('a', S.get('div.hot-banner-wrapper')),
	needald = false,
	tms_title = [],
	new_ald = [];

	for (var i = 0; i < tms_product.length; i++) {

		if (tms_product[i].getAttribute('data-ald') == 'yes') {
			needald = true;
		} else {
			//将现有的TMS指定显示的商品Title保存起来
			tms_title.push(tms_product[i].title);
		}
	}
	// 如果Cookie里面存在用户信息则继续执行
	if (!NICK || !needald)
	 return;

	S.getScript('http://ald.taobao.com/home/recommendStrValueJson.htm?appID=94&num;=1&varName;=aldata&key;=' + encodeURI(NICK),
	function() {
		if (typeof aldata === 'undefined' || aldata.length != 6)
		 return;

		var POSITION_ID = ["15004843018100849003", "1500484303e36c07f894", "1500484304dcc54f6ca9", "1500484305c313771183", "1500484306ae48c2cc1e", "15004843075b08638541"];

		//删除阿拉丁与TMS指定显示的重复数据,构建新的数组
		for (var i = 0; i < aldata.length; i++) {
			if (!S.inArray(aldata[i].title, tms_title)) {
				new_ald.push(aldata[i]);

			}
		}

		for (var i = 0, j = tms_product.length; i < j; i++) {
			var item = tms_product[i];
			if (item.getAttribute('data-ald') == 'yes') {

				//拼接recommend_id与TMS位置埋点信息
				new_ald[0].url = "http://ju.atpanel.com/?url=" + new_ald[0].url + "&recommendId;=" + new_ald[0].biParam + "?ad_id=&am;_id=&cm;_id=&pm;_id=" + POSITION_ID[i];

				var img = S.DOM.get('img', item);
				//替换超链接的标题,图片链接,跳转链接
				item.title = new_ald[0].title;
				img.src = new_ald[0].img;
				item.href = new_ald[0].url;
				//填充完毕删除该元素
				new_ald.splice(0, 1);
			}
		}

	});
	// unicode解码
	function decode(str) {
		if (str) {
			return str.replace(/\\u([0-9a-f]{4,4})/ig,
			function(t, m1) {
				return String.fromCharCode(parseInt(m1, 16));
			});
		} else {
			//str为空字符串
			return null;
		}
	};

};

});

`



Like Tweet +1
打赏

打赏留言

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少
支付宝
微信

打开支付宝扫一扫,即可进行扫码打赏哦