function bin2hex(s) { var i, l, o = '', n; s += ''; for (i = 0, l = s.length; i < l; i++) { n = s.charCodeAt(i) .toString(16); o += n.length < 2 ? '0' + n : n; } return o; } function getUUID(domain) { var canvas = document.createElement('canvas'); var ctx = canvas.getContext("2d"); var txt = domain; ctx.textBaseline = "top"; ctx.font = "14px 'Arial'"; ctx.textBaseline = "tencent"; ctx.fillStyle = "#f60"; ctx.fillRect(125, 1, 62, 20); ctx.fillStyle = "#069"; ctx.fillText(txt, 2, 15); ctx.fillStyle = "rgba(102, 204, 0, 0.7)"; ctx.fillText(txt, 4, 17); var b64 = canvas.toDataURL().replace("data:image/png;base64,", ""); var bin = atob(b64); var crc = bin2hex(bin.slice(-16, -12)); return crc; } var btn_wait = 60; function timeOutOfBtn(domBtn, langBtn) { if (btn_wait === 0) { domBtn.removeAttribute("disabled"); domBtn.innerText = langBtn; btn_wait = 60; document.getElementById('nb_nodeboard_set_lx').style.display = 'block'; document.getElementById('nb_nodeboard_success_lx').style.display = 'none'; } else { domBtn.innerText = langBtn + "(" + btn_wait + ")"; btn_wait--; setTimeout(function () { timeOutOfBtn(domBtn, langBtn); }, 1000); } } function apiHelper(api_path, api_params, fn) { $.ajax({ url: 'https://cms.lian-xin.com/' + api_path, type: 'post', timeout: 3000, cache: false, data: api_params, dataType: "JSON", headers: { Origin: "https://lian.zj11.net" }, success: function (result) { if (typeof result == "string") { result = JSON.parse(result); } fn(result); }, error: function (message) { console.debug('敏感词检查出错'); } }); } function apiCheck(api_path, api_params, fn) { if (typeof $ === "undefined") { setTimeout(function () { apiHelper(api_path, api_params, fn); }, 2000); } else { apiHelper(api_path, api_params, fn); } } function apiCheckOfNowPage(PKS, fn) { apiCheck('Site/GuestRequest/CheckIsSite', PKS.guest, fn); } function apiCheckOfNodeBoard(api_path, api_params, ins_nb_nodeboard_tips, fn) { apiCheck('LeaveMsg/' + api_path, api_params, result => { if (result.hasOwnProperty('isSuccess') && result.hasOwnProperty('msg')) { if (result.isSuccess) { if (ins_nb_nodeboard_tips != null) { ins_nb_nodeboard_tips.innerText = ''; } if (typeof fn == "function") { fn(result.data); } } else { if (ins_nb_nodeboard_tips != null) { ins_nb_nodeboard_tips.innerText = result.msg; } else { alert(result.msg); } } } else { console.debug('敏感词检查返回不正常'); } }); } function apiCheckOfAuth(PKS, ins_nb_nodeboard_tips, langBtn) { timeOutOfBtn(document.getElementById('nb_nodeboard_send_lx'), langBtn); var params_form = $('#nb_nodeboard_form_lx').serializeArray(); var params_api = Object.assign(Object.create(null), PKS.guest); for (let paramsFormElement of params_form) { params_api[paramsFormElement.name] = paramsFormElement.value; } apiCheckOfNodeBoard('AuthLeaveMsg/', params_api, ins_nb_nodeboard_tips, res => { if (res.hasOwnProperty('sign')) { document.getElementById('nb_nodeboard_set_lx').style.display = 'none'; document.getElementById('nb_nodeboard_success_lx').style.display = 'block'; apiCheckOfNodeBoard('PushLeaveMsg', {key: res.sign}, ins_nb_nodeboard_tips); } }); } function apiCheckOfAuthByForm(params_api) { apiCheckOfNodeBoard('AuthLeaveMsg/', params_api, null, res => { if (res.hasOwnProperty('sign')) { apiCheckOfNodeBoard('PushLeaveMsg', {key: res.sign}, null); } }); } ;!function (win, doc) { var PKS = { config: { url: 'https://lian.zj11.net' }, guest: { domainName: location.hostname, protocol: location.protocol, pageTitle: doc.getElementsByTagName('title')[0].innerHTML, pageUrl: location.href, UUID: getUUID(location.hostname) }, server: { isOnline: false, name: '', id: '' }, level: { leavelMsg: 'lian_leaveMsg', onChat: 'lian_onChat' }, style: { ins_nbWebImLightContainer: "right: 20px;bottom: 10px;z-index:9999;", m_nbWebImLightContainer: 'width:90%', ins_nodeboard_hide: function () { let result = PKS.style.ins_nbWebImLightContainer; let now_lang = doc.getElementsByTagName('html')[0].getAttribute('lang'); if (now_lang !== 'en') { return result + "width:160px;"; } else { return result + "widtn:230px;"; } } }, language: { action_input: { 'zh-cn': '请输入', 'en': 'please enter' }, action_format_email: { 'zh-cn': '邮箱请使用正确的邮箱', 'en': 'Please use the correct email address' }, action_format_phone: { 'zh-cn': '请输入正确的中国手机号,或者是有地区号的固定(国际)电话', 'en': 'Please enter the correct Chinese mobile phone number, or a fixed (international) phone with an area code' }, chat_tips: { 'zh-cn': '咨询客服', 'en': 'Consulting' }, chat_btn: { 'zh-cn': '发送', 'en': 'Send' }, chat_reply: { 'zh-cn': '咨询的内容不能为空', 'en': 'The content of the inquiry cannot be empty' }, leaveMsg_btnSubmit: { 'zh-cn': '发送', 'en': 'Submit' }, leaveMsg_btnReset: { 'zh-cn': '重置', 'en': 'Reset' }, leaveMsg_fromContent: { 'zh-cn': '内容(必填)', 'en': 'content(Required)' }, leaveMsg_fromTipsContent: { 'zh-cn': '请在此输入留言内容,我们会在24小时内尽快与您联络。(必填)', 'en': 'Please enter the message content here, we will contact you as soon as possible within 24 hours. (Required)' }, leaveMsg_fromEmail: { 'zh-cn': '联系邮箱(必填)', 'en': 'Email(Required)' }, leaveMsg_fromName: { 'zh-cn': '姓名(必填)', 'en': 'Name(Required)' }, leaveMsg_fromPhone: { 'zh-cn': '手机号码(必填)', 'en': 'Phone(Required)' }, state_serverOnline: { 'zh-cn': '客服:xxx,正在为您服务', 'en': 'Customer service: xxx, at your service' }, state_serverOnline_simple: { 'zh-cn': '咨询客服', 'en': 'Advisory Service' }, state_leaveMsg: { 'zh-cn': '请您询盘', 'en': 'Please leave a message' }, leaveMsg_tipsTitle: { 'zh-cn': '提交成功', 'en': 'Submitted successfully' }, leaveMsg_tipsContent: { 'zh-cn': '尊敬的 lianChat_userName 客户:感谢您的留言,我们已经收到您的消息,尽快与您取得联系。', 'en': 'honorific lianChat_userName Thank you for your message. We have received your message and will contact you as soon as possible.' }, leaveMsg_tipsForbidden: { 'zh-cn': '留言内容存在敏感信息,不能提交!', 'en': 'The message content contains sensitive information and cannot be submitted!' } }, list_input: { 'leaveMsg_fromName': 'userName', 'leaveMsg_fromPhone': 'userPhone', 'leaveMsg_fromEmail': 'userEmail' } } , is_mobile = function () { var is; if (is === undefined) { var ua = navigator.userAgent, isWindowsPhone = /(?:Windows Phone)/.test(ua), isSymbian = /(?:SymbianOS)/.test(ua) || isWindowsPhone, isAndroid = /(?:Android)/.test(ua), isFireFox = /(?:Firefox)/.test(ua), isChrome = /(?:Chrome|CriOS)/.test(ua), isTablet = /(?:iPad|PlayBook)/.test(ua) || (isAndroid && !/(?:Mobile)/.test(ua)) || (isFireFox && /(?:Tablet)/.test(ua)), isPhone = /(?:iPhone)/.test(ua) && !isTablet; is = isPhone || isAndroid || isSymbian; // console.log('is_mobile', is); } return is; } , ins_newBridge = doc.createElement('ins') , ins_nbWebImLightContainer = doc.createElement('ins') , ins_nbWLTitle = doc.createElement('ins') , ins_nbWLEditor = doc.createElement('ins') , ins_nbWLMessageContainer = doc.createElement('ins') , ins_nbWLToggle = doc.createElement('ins') , ins_nbWLToolBar = doc.createElement('ins') , ins_nb_nodeBoard = doc.createElement('ins') , lang = function (key) { let now_lang = doc.getElementsByTagName('html')[0].getAttribute('lang'); if (now_lang !== 'en') { now_lang = 'zh-cn'; } let keys = PKS.language[key]; return keys[now_lang]; } , localLayui = function () { var headobj = doc.getElementsByTagName('head')[0]; var style_main = doc.createElement('link'); style_main.rel = "stylesheet"; style_main.href = PKS.config.url + '/main.css'; headobj.appendChild(style_main); var style_newBridge = doc.createElement('link'); style_newBridge.rel = "stylesheet"; style_newBridge.href = PKS.config.url + '/newBridge.css'; headobj.appendChild(style_newBridge); if (typeof $ === "undefined") { var sObj = doc.createElement('script'); sObj.type = "text/javascript"; sObj.src = PKS.config.url + '/jquery-1.8.3.min.js'; headobj.appendChild(sObj); } } , chatbox_content = function (userName, time, content, fn) { var msg_title = doc.createElement('ins'); msg_title.className = 'nb-webim-light-message-title'; var msg_user = doc.createElement('ins'); msg_user.className = 'nb-webim-light-message-name'; msg_user.innerText = ''; msg_title.append(msg_user); var msg_time = doc.createElement('ins'); msg_time.className = 'nb-webim-light-message-time'; msg_time.innerText = time; msg_title.append(msg_time); var msg_content = doc.createElement('ins'); msg_content.className = 'nb-webim-light-message-content'; msg_content.innerText = content; fn(msg_title, msg_content); } , chatbox_guest = function (time, content) { chatbox_content('', time, content, function (html_title, html_content) { var ins_msg = doc.createElement('ins'); ins_msg.className = 'nb-webim-light-message nb-webim-light-message-0'; ins_msg.append(html_title); ins_msg.append(html_content); ins_nbWLMessageContainer.append(ins_msg); ins_nbWLMessageContainer.scrollTop = ins_nbWLMessageContainer.scrollHeight; }); } , chatbox_server = function (userName, time, content,) { chatbox_content(userName, time, content, function (html_title, html_content) { var ins_msg = doc.createElement('ins'); ins_msg.className = 'nb-webim-light-message nb-webim-light-message-1'; ins_msg.append(html_title); ins_msg.append(html_content); ins_nbWLMessageContainer.append(ins_msg); ins_nbWLMessageContainer.scrollTop = ins_nbWLMessageContainer.scrollHeight; }); } , chat_msgOfGuest = function () { var dom = doc.getElementById('nbWebimLightEditor'); var reply_msg = dom.innerHTML; if (reply_msg == null || reply_msg === '') { layer.msg(lang('chat_reply')); } else { reply_msg = reply_msg.replace(/<.*?>/g, ""); var myDate = new Date(); var now_time = myDate.getHours() + ':' + myDate.getMinutes() + ':' + myDate.getSeconds(); PKWS.send('sendMsg', { reply: reply_msg, time: now_time }); chatbox_guest(now_time, reply_msg); dom.innerHTML = ''; dom.focus(); } } , view_chat = function () { if (!doc.getElementById('nbwlMessageContainer')) { // 聊天信息 ins_nbWLMessageContainer.id = 'nbwlMessageContainer'; ins_nbWLMessageContainer.style.display = 'none'; ins_nbWebImLightContainer.append(ins_nbWLMessageContainer); // 编辑框 ins_nbWLEditor.id = 'nbwlEditor'; ins_nbWLEditor.style.display = 'none'; ins_nbWebImLightContainer.append(ins_nbWLEditor); var ins_nbWebImLightEditor = doc.createElement('ins'); ins_nbWebImLightEditor.id = 'nbWebimLightEditor'; ins_nbWebImLightEditor.className = 'editor'; ins_nbWebImLightEditor.contentEditable = "true"; ins_nbWebImLightEditor.style.fontFamily = '微软雅黑'; ins_nbWebImLightEditor.style.fontSize = '9pt'; ins_nbWebImLightEditor.style.color = 'rgb(0, 0, 0);'; ins_nbWLEditor.append(ins_nbWebImLightEditor); ins_nbWebImLightEditor.focus(); ins_nbWebImLightEditor.onkeyup = function () { if (ins_nbWebImLightEditor.innerHTML.length >= 2) { ins_nbWLSendBtn.disabled = false; } else { ins_nbWLSendBtn.disabled = true; } }; // 操作栏 ins_nbWLToolBar.id = 'nbwlToolBar_lx'; ins_nbWLToolBar.style.display = 'none'; ins_nbWebImLightContainer.append(ins_nbWLToolBar); var ins_nbWLSendBtn = doc.createElement('button'); ins_nbWLSendBtn.id = 'nbwlSendBtn'; ins_nbWLSendBtn.className = 'nb-webim-light-toolbar-send'; ins_nbWLSendBtn.innerText = lang('chat_btn'); ins_nbWLSendBtn.disabled = true; ins_nbWLToolBar.append(ins_nbWLSendBtn); ins_nbWLSendBtn.onclick = function (e) { chat_msgOfGuest(); } } } , view_msg = function () { if (!doc.getElementById('nb_nodeboard_lx')) { ins_nb_nodeBoard.id = 'nb_nodeboard_lx'; ins_nb_nodeBoard.className = 'nb-nodeboard-base nb-hide'; ins_nbWebImLightContainer.append(ins_nb_nodeBoard); var ins_contain = doc.createElement('ins'); ins_contain.className = 'nb-nodeboard-contain-base nb-nodeboard-contain'; ins_nb_nodeBoard.append(ins_contain); var form_nb_nodeboard_form = doc.createElement('form'); form_nb_nodeboard_form.id = 'nb_nodeboard_form_lx'; form_nb_nodeboard_form.className = 'nb-board-form'; ins_contain.append(form_nb_nodeboard_form); var ins_nb_nodeBoard_set = doc.createElement('ins'); ins_nb_nodeBoard_set.id = 'nb_nodeboard_set_lx'; ins_nb_nodeBoard_set.className = 'nb-nodeboard-set'; form_nb_nodeboard_form.append(ins_nb_nodeBoard_set); // content var ins_nb_nodeBoard_content = doc.createElement('ins'); ins_nb_nodeBoard_content.id = 'nb-nodeboard-content_lx'; ins_nb_nodeBoard_set.append(ins_nb_nodeBoard_content); var textarea_nb_nodeboard_set_content_js = doc.createElement('textarea'); textarea_nb_nodeboard_set_content_js.id = 'nb-nodeboard-set-content-js'; textarea_nb_nodeboard_set_content_js.name = 'content'; textarea_nb_nodeboard_set_content_js.placeholder = lang('leaveMsg_fromTipsContent'); textarea_nb_nodeboard_set_content_js.className = 'nb-nodeboard-set-content nb-nodeboard-param'; ins_nb_nodeBoard_content.append(textarea_nb_nodeboard_set_content_js); // user name var ins_nb_nodeBoard_name = doc.createElement('ins'); ins_nb_nodeBoard_name.className = 'nb-nodeboard-name'; ins_nb_nodeBoard_set.append(ins_nb_nodeBoard_name); var ins_icon_name = doc.createElement('ins'); ins_icon_name.className = 'nb-nodeboard-icon nodeName'; ins_nb_nodeBoard_name.append(ins_icon_name); var input_set_name = doc.createElement('input'); input_set_name.placeholder = lang('leaveMsg_fromName'); input_set_name.id = 'nb_nodeboard_set_name_lx'; input_set_name.className = 'nb-nodeboard-input nb-nodeboard-param'; input_set_name.name = 'userName'; input_set_name.maxLength = 30; input_set_name.type = 'text'; ins_nb_nodeBoard_name.append(input_set_name); // phone var ins_nb_nodeBoard_phone = doc.createElement('ins'); ins_nb_nodeBoard_phone.id = 'nb_nodeboard_phone_lx'; ins_nb_nodeBoard_phone.className = 'nb-nodeboard-name'; ins_nb_nodeBoard_set.append(ins_nb_nodeBoard_phone); var ins_icon_phone = doc.createElement('ins'); ins_icon_phone.className = 'nb-nodeboard-icon nodePhone'; ins_nb_nodeBoard_phone.append(ins_icon_phone); var input_set_phone = doc.createElement('input'); input_set_phone.placeholder = lang('leaveMsg_fromPhone'); input_set_phone.id = 'nb_nodeboard_set_phone'; input_set_phone.className = 'nb-nodeboard-input nb-nodeboard-param'; input_set_phone.name = 'userPhone'; input_set_phone.maxLength = 30; input_set_phone.type = 'text'; ins_nb_nodeBoard_phone.append(input_set_phone); // email var ins_nb_nodeBoard_email = doc.createElement('ins'); ins_nb_nodeBoard_email.id = 'nb_nodeboard_email_lx'; ins_nb_nodeBoard_email.className = 'nb-nodeboard-name nb-nodeboard-ext-input'; ins_nb_nodeBoard_set.append(ins_nb_nodeBoard_email); var ins_icon_email = doc.createElement('ins'); ins_icon_email.className = 'nb-nodeboard-icon nodeMail'; ins_nb_nodeBoard_email.append(ins_icon_email); var input_set_email = doc.createElement('input'); input_set_email.placeholder = lang('leaveMsg_fromEmail'); input_set_email.id = 'nb_nodeboard_set_email'; input_set_email.className = 'nb-nodeboard-input nb-nodeboard-param'; input_set_email.name = 'userEmail'; input_set_email.maxLength = 30; input_set_email.type = 'text'; ins_nb_nodeBoard_email.append(input_set_email); // state var ins_nb_nodeBoard_success = doc.createElement('ins'); ins_nb_nodeBoard_success.id = 'nb_nodeboard_success_lx'; ins_nb_nodeBoard_success.className = 'nb-nodeboard-success'; ins_contain.append(ins_nb_nodeBoard_success); var ins_nb_success_box = doc.createElement('ins'); ins_nb_success_box.className = 'nb-success-box'; ins_nb_nodeBoard_success.append(ins_nb_success_box); var ins_nb_success_icon = doc.createElement('ins'); ins_nb_success_icon.className = 'nb-success-icon'; ins_nb_success_box.append(ins_nb_success_icon); var ins_nb_node_messagetitle = doc.createElement('ins'); ins_nb_node_messagetitle.innerText = lang('leaveMsg_tipsTitle'); ins_nb_node_messagetitle.id = 'nb_node_messagetitle'; ins_nb_node_messagetitle.className = 'nb-success-title'; ins_nb_success_box.append(ins_nb_node_messagetitle); var ins_nb_node_messagecontent = doc.createElement('ins'); ins_nb_node_messagecontent.id = 'nb_node_messagecontent'; ins_nb_node_messagecontent.className = 'nb-success-content'; ins_nb_success_box.append(ins_nb_node_messagecontent); var ins_nb_nodeboard_tips = doc.createElement('ins'); ins_nb_nodeboard_tips.id = 'nb-nodeboard-tips-js_lx'; ins_nb_nodeboard_tips.className = 'nb-nodeboard-tips'; ins_nb_nodeBoard_set.append(ins_nb_nodeboard_tips); // btn var ins_nb_node_contain = doc.createElement('ins'); ins_nb_node_contain.id = 'nb_node_contain_lx'; ins_nb_node_contain.className = 'nb-nodeboard-send'; ins_contain.append(ins_nb_node_contain); var ins_nb_nodeBoard_send = doc.createElement('button'); ins_nb_nodeBoard_send.id = 'nb_nodeboard_send_lx'; ins_nb_nodeBoard_send.className = 'nb-nodeboard-send-btn nb-nodeboard-send-btn-0'; ins_nb_nodeBoard_send.style = 'background-color: #4e6ef2;background-image: none;'; ins_nb_nodeBoard_send.innerText = lang('leaveMsg_btnSubmit'); ins_nb_node_contain.append(ins_nb_nodeBoard_send); // btn click ins_nb_nodeBoard_send.onclick = function () { ins_nb_nodeBoard_send.setAttribute('disabled', 'disabled'); let phone = input_set_phone.value; let email = input_set_email.value; if (textarea_nb_nodeboard_set_content_js.value == '') { ins_nb_nodeboard_tips.innerText = (lang('action_input') + ' ' + lang('leaveMsg_fromContent')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else if (input_set_name.value == '') { ins_nb_nodeboard_tips.innerText = (lang('action_input') + ' ' + lang('leaveMsg_fromName')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else if (phone == '') { ins_nb_nodeboard_tips.innerText = (lang('action_input') + ' ' + lang('leaveMsg_fromPhone')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else if (email == '') { ins_nb_nodeboard_tips.innerText = (lang('action_input') + ' ' + lang('leaveMsg_fromEmail')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else { let pattern_tel = new RegExp("^(\\+\\d{2}-)?0\\d{2,3}-\\d{7,8}$", 'i'); let pattern_phone = new RegExp("^1[3456789][0-9]{9}$", 'i'); if (!pattern_phone.test(phone) && !pattern_tel.test(phone)) { ins_nb_nodeboard_tips.innerText = (lang('action_format_phone')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else { var innerText = lang('leaveMsg_tipsContent'); ins_nb_node_messagecontent.innerText = innerText.replace('lianChat_userName', input_set_name.value); let pattern_mail = new RegExp("^[A-Za-zd0-9]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$", 'i'); if (!pattern_mail.test(email)) { ins_nb_nodeboard_tips.innerText = (lang('action_format_email')); ins_nb_nodeBoard_send.removeAttribute('disabled'); } else { apiCheckOfAuth(PKS, ins_nb_nodeboard_tips, lang('leaveMsg_btnSubmit')); } } } return false; } } } , show_nbWebImLightContainer = function () { if (is_mobile()) { let style; if (win.screen.availWidth <= 320) { style = 'width:100%;bottom: 10px;right:0px;'; } else { style = PKS.style.m_nbWebImLightContainer + PKS.style.ins_nbWebImLightContainer; } ins_nbWebImLightContainer.style = style; } else { ins_nbWebImLightContainer.style = PKS.style.ins_nbWebImLightContainer; } } , show_chat = function () { show_nbWebImLightContainer(); ins_nbWLToggle.className = 'nb-webim-light-status-bar-toggle'; ins_nbWLMessageContainer.style.display = 'block'; ins_nbWLEditor.style.display = 'block'; ins_nbWLToolBar.style.display = 'block'; var title = lang('state_serverOnline'); ins_nbWLTitle.innerText = title.replace('xxx', PKS.server.name); doc.getElementById('nbWebimLightEditor').focus(); ins_nbWLMessageContainer.scrollTop = ins_nbWLMessageContainer.scrollHeight; } , show_msg = function () { show_nbWebImLightContainer(); ins_nb_nodeBoard.style.display = 'grid'; ins_nbWLToggle.className = 'nb-webim-light-status-bar-toggle'; } , PKWS = { ws: null, timer_count: 0, //计时器 interval_timer: null, is_online: true, is_getMsgOfNew: false, myTimer: function () { // 定时器具体实现方法 //TODO 如果超过半小时没有交互,则关闭计时器 if (this.timer_count >= 1800) { clearInterval(this.interval_timer); } else { this.timer_count += 30; this.send('OnlineServer'); console.log('timer_count', this.timer_count); } }, init_start_timer: function () { // 设置一个 30秒的轮询监听方法,避免页面关闭 // 重置计数器 this.timer_count = 0; if (this.interval_timer != null) { clearInterval(this.interval_timer); this.interval_timer = null; } this.interval_timer = setInterval(function () { PKWS.myTimer(); }, 30000); }, websocketInit: function () { this.ws.onopen = function (e) { console.log("连接服务器成功"); PKWS.send('online'); } this.ws.onclose = function (e) { console.log("服务器关闭"); ins_nbWLTitle.innerText = lang('state_leaveMsg'); } this.ws.onerror = function () { console.log("连接出错"); ins_nbWLTitle.innerText = lang('state_leaveMsg'); } // 这里接受服务器端发过来的消息 this.ws.onmessage = function (e) { // console.log("接收消息", typeof e.data, e.data); let json = JSON.parse(e.data); if (json.hasOwnProperty('Inquiry')) { switch (json.Inquiry) { case 'online': PKWS.send('OnlineServer'); break; case 'noLine': PKS.server.isOnline = false; PKS.server.name = ''; PKS.server.id = ''; ins_nbWLTitle.innerText = lang('state_leaveMsg'); break; case 'onLineServer': PKS.server.isOnline = true; if (json.hasOwnProperty('name')) { PKS.server.name = json.name; if (ins_nbWLMessageContainer.style.display !== 'block') { ins_nbWLTitle.innerText = lang('state_serverOnline_simple'); } if (!PKWS.is_getMsgOfNew) { // 聊天历史 PKWS.send('getChatMsg', {}); } } break; case 'pushMsg': if (json.hasOwnProperty('reply') && json.hasOwnProperty('userName')) { chatbox_server(json.userName, json.time, json.reply); } break; case 'resultMsg': if (json.hasOwnProperty('list')) { var list_json = JSON.parse(json.list); console.log(list_json); for (var listJsonElement of list_json) { switch (listJsonElement.msg_type) { case "guest": chatbox_guest(listJsonElement.time, listJsonElement.reply); break; case "server": if (listJsonElement.hasOwnProperty('reply') && listJsonElement.hasOwnProperty('userName')) { chatbox_server(listJsonElement.userName, listJsonElement.time, listJsonElement.reply); } break; } } } break; } } } }, isOnlineCurrUser: function () { if (this.ws) { if (this.ws.readyState === WebSocket.OPEN) { return true; } else { return false; } } else { return false; } }, createOrConnectWebSocket: function () { if (!this.ws) { if (win.WebSocket) { this.ws = new WebSocket('wss://lianchat.pkcms.cn:8001'); PKWS.websocketInit(); } } else { if (!PKWS.isOnlineCurrUser()) { this.ws = null; PKWS.createOrConnectWebSocket(); } } // 开启定时器 PKWS.init_start_timer(); }, send: function (action, params) { var params_send = Object.assign(Object.create(null), PKS.guest); if (typeof params == "object") { params_send = Object.assign(params_send, params); } var noLine = [WebSocket.CLOSING, WebSocket.CLOSED]; if (noLine.indexOf(this.ws.readyState) > -1) { this.is_online = false; clearInterval(this.interval_timer); } else { this.timer_count = 0; this.ws.send(JSON.stringify({action, params: params_send})); } } } , lianChat = function () { }; ins_nbWLToggle.onclick = function () { console.log(PKS.server.isOnline); let is_show = false; if (PKS.server.isOnline) { // 客服在线 if (doc.getElementById('nb_nodeboard_lx')) { doc.getElementById('nb_nodeboard_lx').remove(); } if (doc.getElementById('nbwlMessageContainer')) { is_show = ins_nbWLMessageContainer.style.display === 'block'; if (is_show) { ins_nbWLTitle.innerText = lang('state_serverOnline_simple'); ins_nbWebImLightContainer.style = PKS.style.ins_nodeboard_hide(); ins_nbWLMessageContainer.style.display = 'none'; ins_nbWLEditor.style.display = 'none'; ins_nbWLToolBar.style.display = 'none'; ins_nbWLToggle.className = 'nb-webim-light-status-bar-toggle nb-webim-light-hide'; } else { show_chat(); } } else { view_chat(); setTimeout(function () { show_chat(); }, 500); } } else { // 客服不在线 if (doc.getElementById('nbwlMessageContainer')) { ins_nbWLMessageContainer.remove(); ins_nbWLEditor.remove(); ins_nbWLToolBar.remove(); } if (doc.getElementById('nb_nodeboard_lx')) { is_show = ins_nb_nodeBoard.style.display === 'grid'; if (is_show) { ins_nbWebImLightContainer.style = PKS.style.ins_nodeboard_hide(); ins_nb_nodeBoard.style.display = 'none'; ins_nbWLToggle.className = 'nb-webim-light-status-bar-toggle nb-webim-light-hide'; } else { show_msg(); } } else { view_msg(); setTimeout(function () { show_msg(); }, 500); } } if (is_mobile()) { ins_newBridge.style.display = is_show ? 'none' : 'block'; } }; lianChat.prototype.init = function () { apiCheckOfNowPage(PKS, function () { localLayui(); if (!doc.getElementById('newBridge_lx')) { ins_newBridge.id = 'newBridge_lx'; ins_newBridge.style.display = is_mobile() ? 'none' : 'block'; doc.body.append(ins_newBridge); // 外框 ins_nbWebImLightContainer.id = 'nbWebImLightContainer_lx'; ins_nbWebImLightContainer.className = 'nb-webim-light-windowsos maxMessageContainer'; ins_nbWebImLightContainer.style = PKS.style.ins_nodeboard_hide(); ins_newBridge.append(ins_nbWebImLightContainer); // 头部状态栏 var ins_nbWLStatusBar = doc.createElement('ins'); ins_nbWLStatusBar.id = 'nbwlStatusBar_lx'; ins_nbWebImLightContainer.append(ins_nbWLStatusBar); // 标题 ins_nbWLTitle.innerText = lang('state_leaveMsg');; ins_nbWLTitle.className = 'nb-webim-light-status-bar-title'; ins_nbWLStatusBar.append(ins_nbWLTitle); // 切换 ins_nbWLToggle.id = 'nbwlToggle_lx'; ins_nbWLToggle.className = 'nb-webim-light-status-bar-toggle nb-webim-light-hide'; ins_nbWLStatusBar.append(ins_nbWLToggle); var ins_icon = doc.createElement('ins'); ins_icon.className = 'nb-webim-light-toggle-icon'; ins_nbWLToggle.append(ins_icon); //PKWS.createOrConnectWebSocket(); } }); }; lianChat.prototype.btnRun = function () { ins_nbWLToggle.click(); } doc.onkeydown = function (event) { var e = event || win.event || arguments.callee.caller.arguments[0]; if (e && e.keyCode == 13) { // enter 键 console.log('按回车了'); if (doc.getElementById('nbwlSendBtn')) { chat_msgOfGuest(); } } }; win.lianChat = new lianChat(); }(window, document);