&...">
,需要通过父级DOM结构来判断
*/
var trackActionPhone = function (node) {
var nodeInnerText = node.innerText || '';
if (!limitRegLength(nodeInnerText)) return;
var nodeText = trimText(nodeInnerText);
if (nodeText.length < 5 || nodeText.length > 20) return false;
var type =
arguments.length > 1 && arguments[1] !== undefined
? arguments[1]
: 'click';
var str = trimText(node.href || node.innerHTML || '');
if (phoneReg.test(str) && numUseReg.test(str)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
/** 排查父级嵌套非标签场景,并且对dom的正则校验做一个性能兜底,通过控制innerText的长度,来确保正则的性能 */
var fatherText = trimText(node.parentNode.innerText || '');
if (fatherText.length < 5 || fatherText.length > 20) return false;
var fatherDom = trimText(node.parentNode.innerHTML || '');
if (phoneReg.test(fatherDom) && numUseReg.test(fatherDom)) {
_paq.push(['trackEvent', type, 'phone', nodeText]);
return true;
}
return false;
};
window.addEventListener('click', function (e) {
var node = e.target;
/** 社媒点击 */
var appName = '';
var getAppAriaLabel =
node.ariaLabel || node.parentNode.ariaLabel || '';
if (mediaList.includes(getAppAriaLabel.toLowerCase())) {
appName = getAppAriaLabel;
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'a'
) {
appName = getMediaName(node.href) || getMediaName(node.alt);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'img'
) {
appName = getMediaName(node.alt) || getMediaName(node.src);
}
if (
!appName &&
node.nodeName &&
node.nodeName.toLowerCase() === 'i'
) {
appName = getMediaName(node.className);
}
if (appName) {
_paq.push(['trackEvent', 'click', 'contactApp', appName]);
return;
}
/** 联系方式点击 */
if (trackActionPhone(node, 'click')) return;
if (node.nodeName && node.nodeName.toLowerCase() === 'a') {
var val = node.href;
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
if (node.nodeName && node.nodeName.toLowerCase() === 'i') {
var val = node.className;
var content = node.parentNode.href || '';
if (val.includes('email')) {
_paq.push(['trackEvent', 'click', 'email', content]);
return;
}
}
var nodeChildList = node.childNodes;
for (var i = 0; i < nodeChildList.length; i++) {
if (nodeChildList[i].nodeType !== 3) continue;
var val = nodeChildList[i].textContent.replace(/\s?:?/g, '');
if (!limitRegLength(val)) continue;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'click', 'email', val]);
return;
}
}
trackNumberData(node);
});
window.addEventListener('copy', function (e) {
if (trackActionPhone(e.target, 'copy')) return;
var text = e.target.textContent;
if (!text) return;
var val = text.replace(/\s:?/g, '');
if (!limitRegLength(val)) return;
if (emailReg.test(val)) {
_paq.push(['trackEvent', 'copy', 'email', val]);
return;
}
trackNumberData(e.target);
});
}
trackContactInit();
/**
* 基于custom_inquiry_form.js 以及 form.js 对于询盘表单提交的实现,来反推询盘表单的input标签触发,用来收集意向客户
* 1. 缓存的KEY:TRACK_INPUT_ID_MTM_00;
* 2. 缓存策略 - lockTrackInput:单个页面内,10分钟内,不重复上报
*/
function trackActionInput() {
const CACHE_KEY = 'TRACK_INPUT_ID_MTM_00';
const pathName = window.location.hostname + window.location.pathname;
var lockTrackInput = function () {
try {
const lastCacheData = localStorage.getItem(CACHE_KEY);
if (!lastCacheData) return false;
const cacheData = JSON.parse(lastCacheData);
const cacheTime = cacheData[pathName];
if (!cacheTime) return false;
return Date.now() - cacheTime < 1000 * 60 * 10; // 10分钟内,不重复上报
} catch (error) {
console.error('lockTrackInput Error', error);
return false;
}
};
var setInputTrackId = function () {
try {
const curCacheData = localStorage.getItem(CACHE_KEY);
if (curCacheData) {
const cacheData = JSON.parse(curCacheData);
cacheData[pathName] = Date.now();
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
return;
}
const cacheData = {
[pathName]: Date.now(),
};
localStorage.setItem(CACHE_KEY, JSON.stringify(cacheData));
} catch (error) {
console.error('setInputTrackId Error', error);
}
};
var getInputDom = function (initDom) {
var ele = initDom;
while (ele) {
/**
* isWebSiteForm 是站点的表单
* isChatWindowForm 是聊天窗口的表单
*/
/** 旧模板表单 */
var isWebSiteForm = !!(
/crm-form/i.test(ele.className) && ele.querySelector('form')
);
/** 1:新模板自定义表单、2:Get a Quote 弹框表单 */
var isWebSiteFormNew = !!(
/inquiry/i.test(ele.className) && ele.querySelector('form')
);
if (isWebSiteForm || isWebSiteFormNew) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'page']);
setInputTrackId();
return;
}
/** Mkt会话触达-聊天弹框的表单输入: MKT由于是iframe嵌入,所以MKT的上报,会单独写到MKT-form代码上 */
var isInquiryChatForm = !!(
/comp-form/i.test(ele.className) && ele.querySelector('form')
);
if (isInquiryChatForm) {
_paq.push(['trackEvent', 'formInquiry', 'formInput', 'chat']);
setInputTrackId();
return;
}
/** 向上查找父节点 */
ele = ele.parentNode;
}
};
function initInputListener() {
var inputUseDebounce = function (fn, delay) {
var timer = null;
var that = this;
return function () {
var args = Array.prototype.slice.call(arguments);
if (timer) clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(that, args);
}, delay);
};
};
var optimizeGetInputDom = inputUseDebounce(getInputDom, 300);
window.addEventListener('input', function (e) {
/** 如果已经上报过,则不再上报 */
if (lockTrackInput()) return;
optimizeGetInputDom(e.target);
});
}
try {
initInputListener();
} catch (error) {
console.log('initInputListener Error', error);
}
}
trackActionInput();
}
/** 第三方消息上报:目前主要是针对全点托管会话;在msgCollect/index.js中调试,访问test.html */
function thirdMsgCollect() {
/** 先检测是否是stayReal托管:如果stayReal脚本都没有,那么说明当前站点未开启stayReal会话托管 */
const scriptList = Array.prototype.slice.call(
document.querySelectorAll('script'),
);
const checkStayReal = () =>
!!scriptList.find((s) => s.src.includes('stayreal.xiaoman.cn'));
if (!checkStayReal()) return;
/** 缓存当前消息队列的最后一条消息id */
const CACHE_KEY = 'CACHE_KEY_MONITOR';
const setCache = (msgIndex) => {
/** 对缓存KEY进行base64转码处理 */
const cacheMsgIndex = btoa(msgIndex);
localStorage.setItem(CACHE_KEY, cacheMsgIndex);
};
const getCache = () => {
const cacheMsgIndex = localStorage.getItem(CACHE_KEY);
if (cacheMsgIndex) return Number(atob(cacheMsgIndex));
return -1;
};
/** 拉取最新msg列表 */
const pullMsgList = () => {
const msgEleList = Array.prototype.slice.call(
document.querySelectorAll('#chat-list li'),
);
const msgIds = [];
const msgMap = msgEleList.reduce((acc, item) => {
const sendTime = item
.querySelector('.message-data-time')
.textContent.trim();
const sendContent = item.querySelector('.message').textContent.trim();
/** msg带有class:other-message的是访客消息,my-message的是客服消息 */
const isOtherMessage = item
.querySelector('.message')
.classList.contains('other-message');
const msgId = item.querySelector('.message').getAttribute('id');
const msgItemData = {
msgId,
user: isOtherMessage ? 'visitor' : 'official',
time: sendTime,
content: sendContent,
};
msgIds.push(msgId);
acc[msgId] = msgItemData;
return acc;
}, {});
return {
ids: msgIds,
dataMap: msgMap,
};
};
/** 加密并上传消息数据 */
let ENCRYPT_KEY = 'de29f1aab63ab033';
let ENCRYPT_IV = 'b8d2badf875e76ac';
const baseUrl = 'https://cms.xiaoman.cn';
// var getEncryptConfig = function () {
// const url = baseUrl + '/shop-api/innerApi/getKeyIv'
// $.get(
// url,
// function (result) {
// console.log('result', result)
// if (Number(result.code) === 0 && result.data.key && result.data.iv) {
// ENCRYPT_KEY = result.data.key
// ENCRYPT_IV = result.data.iv
// uploadMsgData()
// } else {
// /** 如果获取失败,则重试 */
// setTimeout(() => {
// getEncryptConfig()
// }, 1000)
// }
// },
// 'json'
// )
// }
// getEncryptConfig()
const encryptMsg = function (msgData) {
const enc = new TextEncoder();
// 转字节
const keyBytes = enc.encode(ENCRYPT_KEY);
const ivBytes = enc.encode(ENCRYPT_IV);
const plainBytes = enc.encode(msgData);
// 导入密钥并加密
return crypto.subtle
.importKey('raw', keyBytes, { name: 'AES-CBC' }, false, ['encrypt'])
.then(function (cryptoKey) {
return crypto.subtle.encrypt(
{ name: 'AES-CBC', iv: ivBytes },
cryptoKey,
plainBytes,
);
})
.then(function (encryptedBuffer) {
// 转 base64 返回
return btoa(
String.fromCharCode(...new Uint8Array(encryptedBuffer)),
);
})
.catch((err) => {
return Promise.reject(err);
});
};
let uploadFlag = false;
const uploadMsgData = function () {
if (uploadFlag) return;
uploadFlag = true;
const { ids, dataMap } = pullMsgList();
let cacheMsgIndex = getCache();
const msgLen = ids.length;
if (!msgLen) {
// 消息DOM未挂载 || 消息DOM已挂载,但是消息列表为空
uploadFlag = false;
return;
}
if (msgLen - 1 < cacheMsgIndex) {
/** 针对站点挂后台一段时间,消息列表会自动塞入重复消息,导致消息有重复,刷新后又重置回正常消息列表,所以这里需要更新锚点下标 */
cacheMsgIndex = msgLen - 1;
setCache(cacheMsgIndex);
uploadFlag = false;
return;
}
if (msgLen - 1 === cacheMsgIndex) {
// 缓存的最后一次发送的消息ID是最后一条(说明当前消息均已经上报),则不跳过本地上报
uploadFlag = false;
return;
}
const currentMsgIds = ids.slice(cacheMsgIndex + 1, msgLen);
const currentMsgData = currentMsgIds.map((id) => dataMap[id]);
const mtmId = window.matomo_site_id_cookie_key || ''; // 获取mtm会话id
const msgBody = {
mtmId,
curl: window.location.href,
msgList: currentMsgData,
};
const msgBodyStr = JSON.stringify(msgBody);
encryptMsg(msgBodyStr)
.then(function (encryptedMsg) {
console.log('encryptedMsg:', encryptedMsg, msgBodyStr);
const url = baseUrl + '/shop-api/External/ListenSiteActiveStatus';
$.ajax({
type: 'POST',
url,
data: JSON.stringify({ d_v: encryptedMsg }),
contentType: 'application/json',
success: function (result) {
if (Number(result.code) === 0) {
// 更新消息队列
setCache(msgLen - 1);
}
uploadFlag = false;
},
error: function (err) {
console.error(err, '请求异常');
uploadFlag = false;
},
});
})
.catch((err) => {
console.error(err, '数据加密失败');
uploadFlag = false;
});
};
/** 监控chat-list的DOM变更 */
const initChatListObserver = () => {
// 需要监听的 DOM 节点
const target = document.getElementById('chat-list');
if (!target) return;
// 回调函数
const callback = function (mutationsList, observer) {
for (const mutation of mutationsList) {
console.log('mutation', mutation);
if (mutation.type === 'childList') {
uploadMsgData();
}
}
};
// 配置
const config = {
childList: true, // 监听子节点的增删
subtree: true, // 是否也监听后代节点
};
// 创建 observer
const observer = new MutationObserver(callback);
// 开始监听
observer.observe(target, config);
};
let testCount = 30;
let itv = null;
const checkChatDom = () => !!document.querySelector('#vc-model');
const initTalkCheck = () => {
itv = setTimeout(() => {
console.log('checkChatDom', checkChatDom(), testCount);
if (!checkChatDom() && testCount > 0) {
testCount--;
initTalkCheck();
return;
}
clearTimeout(itv);
uploadMsgData();
initChatListObserver();
}, 1500);
};
initTalkCheck();
}
try {
gtmTrack();
thirdMsgCollect();
console.log('inserted gtm code');
} catch (error) {
console.error('gtmTrack Error', error);
}
});
})();
Những giải pháp sưởi ấm hiệu quả này mang lại sự tiện nghi của nước nóng đến tất cả các tầng trong ngôi nhà của bạn. Nước nóng thiết bị sưởi kiểu nồi hơi điện do Xianchuang sản xuất là giải pháp tuyệt vời để giữ ấm căn hộ hoặc ngôi nhà của bạn trong những tháng mùa đông lạnh giá. Những chiếc lò sưởi này hoạt động bằng cách làm nóng nước và dẫn nước qua các đường ống đến các phòng khác nhau trong nhà. Nhờ đó, mọi ngóc ngách trong ngôi nhà của bạn đều ấm áp — ngay cả khi thời tiết ngoài trời lạnh buốt. Khám phá lợi ích của lò nước nóng mang lại sự ấm áp đồng đều và thoải mái. Phân bố nhiệt độ đều Một trong những lợi ích của lò nước nóng là khả năng sưởi ấm đồng đều. Với các hệ thống sưởi truyền thống, nơi không gian lắp đặt bị hạn chế, bạn sẽ gặp phải các vùng nóng và lạnh khác nhau. Tuy nhiên với lò nước nóng, nhiệt độ luôn ổn định và dễ chịu như nhau. Đúng vậy, không còn tranh cãi về nhiệt độ điều khiển, cả gia đình sẽ đều hài lòng! Dễ dàng chuyển đổi sang sử dụng lò nước nóng Việc sưởi ấm toàn bộ ngôi nhà không còn là vấn đề khi sử dụng lò nước nóng Sản phẩm của Xianchuang. Máy nước nóng không chỉ hiệu quả trong việc giữ ấm ngôi nhà bạn, mà còn tiết kiệm chi phí! Các lò này hoạt động rất hiệu quả trong việc sưởi ấm nhà ở, giúp bạn tiết kiệm tiền điện. Và chúng rất đáng tin cậy – với lò nước nóng của bạn, dù bên ngoài lạnh đến mức nào, bạn luôn có thể yên tâm rằng bên trong ngôi nhà sẽ ấm áp và dễ chịu. Hãy giữ ấm vào mùa đông với chiếc lò nước nóng hiệu suất cao Xianchuang. Có rất ít điều khó chịu hơn là cảm thấy lạnh trong chính ngôi nhà của bạn giữa mùa đông. Với lò nước nóng hiệu suất cao Xianchuang, bạn sẽ tận hưởng được sự ấm cúng từ ngôi nhà ra đến sân sau! Những chiếc lò sưởi này sẽ giữ cho bạn ấm áp và cực kỳ thoải mái, giúp bạn thư giãn dễ chịu ngay cả khi thời tiết ngoài trời lạnh giá. Hãy dùng thử lò nước nóng của NY và tiết kiệm chi phí sưởi ấm cho gia đình bạn! Một trong những niềm vui tuyệt vời từ lò nước nóng chính là sự tiện lợi. Khi lò đã được lắp đặt, bạn chỉ cần điều chỉnh nhiệt độ theo ý thích trên bộ điều nhiệt, và lò sẽ tự động vận hành phần còn lại! Đã qua rồi những ngày phải ôm từng bó củi nặng vào nhà và trở về ngôi nhà ẩm ướt vì bọn trẻ không biết cách điều chỉnh nhiệt độ lò sưởi – một lò nước nóng sẽ giải quyết tất cả những điều đó! Máy nồi hơi làm tất cả mọi thứ cho bạn. Đồng thời, bạn sẽ tiết kiệm được nhiều chi phí năng lượng so với các phương pháp sưởi ấm khác, để dành được nhiều tiền hơn cho những điều bạn yêu thích. Là một trong số ít các nhà sản xuất tại Trung Quốc sở hữu giấy phép nồi hơi cấp quốc gia loại A và các chứng nhận quốc tế được công nhận như ASME và CE/MD, sản phẩm của chúng tôi đáp ứng các tiêu chuẩn an toàn và hiệu suất khắt khe nhất cho ứng dụng trên toàn thế giới. Với hơn 20 năm dẫn đầu ngành và sở hữu hơn 30 quyền sở hữu trí tuệ độc lập, chúng tôi đã cung cấp các giải pháp năng lượng tích hợp cho hơn 200 khách hàng hàng đầu, bao gồm các công ty Fortune 500, duy trì tỷ lệ chấp nhận dự án đạt 100%. Hoạt động tại nhà máy tự xây dựng rộng 106.700 mét vuông với công suất hàng năm đạt 40.000 tấn hơi, chúng tôi sử dụng các thiết bị đẳng cấp thế giới—bao gồm máy cán tấm của Ý và hệ thống CNC của Đức—để đảm bảo độ chính xác, quy mô và chất lượng trong mọi dự án. Đội ngũ kỹ sư và chuyên gia kỹ thuật của chúng tôi cung cấp hỗ trợ trọn vòng đời - từ nghiên cứu phát triển và thiết kế đến vận hành thông minh, bảo trì và cải tạo - mang lại giải pháp trọn gói liền mạch cho các dự án EPC và BOT quy mô lớn.Lò sưởi nước nóng
Khám phá lợi ích của việc sử dụng lò nước nóng để sưởi ấm đồng đều và thoải mái.

Nâng cấp lên lò nước nóng để có hệ thống sưởi tin cậy và tiết kiệm chi phí cho toàn bộ ngôi nhà của bạn.

Giữ ấm áp và dễ chịu trong những tháng mùa đông với lò nước nóng hiệu suất cao.

Trải nghiệm sự tiện lợi và tiết kiệm năng lượng khi sử dụng lò nước nóng cho nhu cầu sưởi ấm của bạn.
Why choose Xianchuang
Lò sưởi nước nóng?
Giấy phép cấp quốc gia và chứng nhận toàn cầu
Thành tích đã được chứng minh với các doanh nghiệp lớn
Năng lực sản xuất tiên tiến
Mô hình Dịch vụ Tích hợp Từ Đầu đến Cuối
Danh Mục Sản Phẩm Liên Quan
Không Tìm Thấy Thứ Bạn Đang Tìm?
Yêu Cầu Báo Giá Ngay
Liên hệ với các chuyên gia tư vấn của chúng tôi để biết thêm sản phẩm có sẵn.Liên hệ với chúng tôi