// Visitor/Demo mode script for WeChat mini-program web-view // Hides phone number 13800138000, replaces with "游览模式" // Intercepts order/booking actions and notifies mini-program (function(){ // Detect demo mode: // 1. URL parameter isDemo=true (set by mini-program when loading in demo mode) // 2. Fallback: cookie contains 13800138000 (for direct browser access) function _isDemo(){ try{ if(location.search.indexOf("isDemo=true")>-1)return true; if(window.__DEMO_MODE__)return true; if(/13800138000/.test(decodeURIComponent(document.cookie)))return true; }catch(e){} return false; } // Replace phone number with "游览模式" in user info area // Target DOM: .user-info-content > .main-field and .sub-field function _maskUserInfo(){ // Method 1: Direct class-based targeting (most reliable for smardaten platform) var mainFields = document.querySelectorAll('.user-info-content .main-field'); var subFields = document.querySelectorAll('.user-info-content .sub-field'); mainFields.forEach(function(el){ var t = (el.textContent || '').trim(); if(t && /1\d{10}/.test(t.replace(/\s|-/g,''))){ el.textContent = '游览模式'; } }); subFields.forEach(function(el){ var t = (el.textContent || '').trim(); if(t && /1\d{10}/.test(t.replace(/\s|-/g,''))){ el.textContent = '游览模式'; } }); // Method 2: Broader scan for any phone number display (backup) var allElements = document.querySelectorAll('*'); allElements.forEach(function(el){ if(el.children.length === 0){ var t = (el.textContent || '').trim(); if(/^1\d{10}$/.test(t.replace(/\s|-/g,'')) || t === '13800138000'){ el.textContent = '游览模式'; } } }); // Hide user avatar in demo mode document.querySelectorAll('.mobile-user-info .user-avatar').forEach(function(img){ img.style.display = 'none'; }); // Also hide by src pattern document.querySelectorAll('img').forEach(function(img){ var src = img.src || ''; if(src.indexOf('headPhoto') > -1 || src.indexOf('headphoto') > -1 || src.indexOf('avatar') > -1){ // Only hide if inside user-info area if(img.closest('.mobile-user-info') || img.closest('.user-info-content')){ img.style.display = 'none'; } } }); } // Intercept order/booking clicks function _interceptOrder(){ document.addEventListener('click', function(e){ var el = e.target; var t = (el.textContent || el.innerText || '').trim(); var p = el.closest && el.closest('[class*=order],[class*=book],[class*=submit],[class*=btn]'); if(/预约|下单|预订|提交订单|立即购买|确认下单|确认预约/.test(t) || (p && /预约|下单|预订/.test(p.textContent || ''))){ if(_isDemo()){ e.preventDefault(); e.stopPropagation(); if(e.stopImmediatePropagation) e.stopImmediatePropagation(); try{ if(window.wx && wx.miniProgram){ wx.miniProgram.postMessage({data:{action:'order'}}); } }catch(ex){} alert('当前为游览模式,如需下单请先登录'); return false; } } }, true); } function _init(){ window.__DEMO_MODE__ = location.search.indexOf('isDemo=true') > -1 || document.cookie.indexOf('13800138000') > -1; if(_isDemo()){ _maskUserInfo(); _interceptOrder(); // Keep observing DOM changes to handle dynamic content loading new MutationObserver(function(){ _maskUserInfo(); }).observe(document.body, {childList:true, subtree:true}); } } if(document.readyState === 'loading'){ document.addEventListener('DOMContentLoaded', _init); } else { _init(); } })();