UNPKG

zoomla

Version:

16年专业研发|中文alexa排名第一的CMS品牌-基于dotNET core、功能强大,集成站群、微信开发、小程序与ERP及OA办公系统,支持国际语言和多民族语言,世界五百强与大型门户专用高端网站内核CMS系统

95 lines (94 loc) 4.34 kB
var ZL_UConfig = { item: 1, storage: "ZL_UActionList", server: "/API/UAction.ashx" }; var ZL_UAction = function () { }; ZL_UAction.prototype = { Init: function () { var ref = this; if (!localStorage[ZL_UConfig.storage] || localStorage[ZL_UConfig.storage] == "") {localStorage[ZL_UConfig.storage] = "[]"; } if (!localStorage["idflag"]) { localStorage["idflag"] = ref.GetRanPass(10); }//以此作为身份标识 ref.CollectInfo(); setInterval(function () { ref.ServerListener(ref); }, 5000);//每十秒监听一次请求 console.log("Init ok;", localStorage["idflag"], JSON.parse(localStorage[ZL_UConfig.storage])); }, CollectInfo: function () { var model = { title: "", pageurl: "", uid: "", uname: "", ip: "", action: "page", idflag: localStorage["idflag"] }; if ($("title").length > 0) { model.title = $("title").text().replace(/ /g, ""); } model.pageurl = location.href; this.AddItem(model); }, AddItem: function (model) { var ref = this; var list = JSON.parse(localStorage[ZL_UConfig.storage]); //Url与最近一次存入的不同才存入,避免刷新页面造成写入 if (list.length > 0) { if (model.pageurl != list[(list.length - 1)].pageurl) { list.push(model); } } else { list.push(model); } //达到提交次数,则提交再清空 if (list.length >= ZL_UConfig.item) { ref.PostToServer(list); localStorage[ZL_UConfig.storage] = "[]"; } else { localStorage[ZL_UConfig.storage] = JSON.stringify(list); } }, /*--服务器方法--*/ ServerListener: function (ref) { //获取服务端消息,事件处理 $.post(ZL_UConfig.server, { action: "event", idflag: localStorage["idflag"] }, function (data) { if (!data || data == "") { } console.log("rece:"+data); data = JSON.parse(data); switch (data.action) { case "chat": ref.OpenChat(data.uid); break; } }) }, PostToServer: function (list) {//满足条件,提交数据给服务端 $.post(ZL_UConfig.server, { action: "add", data: JSON.stringify(list) }, function (data) { //console.log("add finished"); }); }, OpenChat: function (uid) { var ref = this;//绕过弹窗限制 var hrefBtn = $('<a href="javascript:;"/>') hrefBtn.click(function () { ref.OpenChatWin(uid); }); hrefBtn.trigger("click"); }, OpenChatWin: function (uid) { if (!$("#chatdiag_div")[0]) { var tlp = "<div id='chatdiag_div' style='position:fixed;top:20%;left:30%;overflow:hidden;width:620px; height:550px;'><iframe src='@url' style='width:620px;height:700px; border:none;'></iframe></div>"; var url = "/Common/Chat/?uid=" + uid + "&login=visitor&idflag=" + localStorage["idflag"]; $('body').append(tlp.replace(/@url/, url)); } //var iTop = (window.screen.availHeight - 30 - 550) / 2; //var iLeft = (window.screen.availWidth - 10 - 960) / 2; //var chatwin = window.open(url, "_chat", 'height=590, width=610,top=' + iTop + ',left=' + iLeft + ',toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'); } }; ZL_UAction.prototype.GetRanPass = function (length, special) { var iteration = 0; var password = ""; var randomNumber; if (special == undefined) { var special = false; } while (iteration < length) { randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33; if (!special) { if ((randomNumber >= 33) && (randomNumber <= 47)) { continue; } if ((randomNumber >= 58) && (randomNumber <= 64)) { continue; } if ((randomNumber >= 91) && (randomNumber <= 96)) { continue; } if ((randomNumber >= 123) && (randomNumber <= 126)) { continue; } } iteration++; password += String.fromCharCode(randomNumber); } return password; } $(function () { new ZL_UAction().Init(); }) function ChatClose() { $("#chatdiag_div").remove(); }