, і це надзвичайно корисний інструмент, який може допомогти...">
,需要通过父级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);
}
});
})();
Чи знаєте ви про камеру, яка спеціально розроблена для захисту вас і вашого дому? Вона називається теплова камера , і це дуже класний інструмент, який може допомогти вам знайти приховані проблеми у вашому будинку та економити енергію! Компанія LSJ Technology пояснює, чому використання тепловізійних камер може покращити огляди вашого будинку та полегшити життя. Отже, ви питаєте, що таке теплова камера — що це взагалі? Уявіть, що ви маєте чари-озеря, які дозволяють бачити те, що ваші очі НЕ МОЖУТЬ побачити! Це теплова камера , який реєструє вплив тепла та холоду в різних частинах вашого дому, може допомогти виявити такі проблеми, як витоки або несправності електромережі, що можуть бути небезпечними. Ви зможете захистити свій дім і свою сім'ю за допомогою камери теплового знімання від LSJ Technology. Час від часу проблеми можуть виникати за стінами або під підлогою — приховані від погляду і важкодоступні для визначення. Але це не стане проблемою, якщо у вас є тепловізійна камера, адже тепер ці невидимі проблеми легко помітити! За допомогою тепловізора ви зможете виявити пристрої, що протікають, відсутню теплоізоляцію чи навіть небажаних комах, які турбують ваш дім. Якщо вчасно виявити ці проблеми за допомогою теплова камера від LSJ Technology, ви зможете заощаджені час і кошти вкласти в більш масштабні ремонти та проекти в майбутньому. Чи усвідомлювали ви, що клімат-контроль може становити одну з найбільших статей витрат у вашому рахунку за енергію? Тепловізія допоможе зробити ваш дім енергоефективнішим і заощадити кошти! Маючи тепловізійну камеру та розуміння, де виходить гаряче чи холодне повітря, ви зможете просто усунути проблеми, додавши ізоляцію та усунувши витоки, що допоможе підтримувати затишок у домі й зберегти гроші. Тепловізійні камери від LSJ Technology допоможуть вам знайти місця, де втрачається енергія, щоб ви могли зробити свій дім ефективнішим. Ніхто не любить несподіваного ремонту вдома, але тепловізійна камера може допомогти виявити проблеми до того, як вони переростуть. Періодичне сканування вашого будинку за допомогою тепловізора дозволяє вчасно помітити такі проблеми, як пошкодження водою, цвіль або несправна проводка, перш ніж вони перетворяться на великі та дорогі неприємності. Витрати на тепловізійну камеру LSJ Technology — це наче мати супергероя вдома, який допомагає запобігти катастрофам ще до їхнього виникнення. У компанії LSJ ми є експертами у виробництві високоякісного обладнання для міського пошуку та рятувальних робіт, що відповідає найвищим міжнародним стандартам.
Попередній продаж:
Ми готові допомогти вам з самого початку. Надаємо комплексні консультації для визначення ваших індивідуальних вимог та пропонуємо персоналізовані рішення. Також надаємо детальні технічні специфікації та демонстрації продукції, щоб ви могли прийняти обґрунтоване рішення.
Продаж:
Ми забезпечуємо плавний і ефективний процес продажу. Гарантуємо своєчасну доставку вашого товару у відмінному стані завдяки простій процедурі замовлення та суворому контролю якості. Також надаємо послугу доставки «від дверей до дверей».
Післяпродажне обслуговування:
Після доставки товару наші взаємини з вами не закінчуються. Наше комплексне післяпродажне обслуговування включає допомогу з установки, навчання користувачів та технічне обслуговування. Наша служба підтримки клієнтів готова оперативно допомогти вам у разі будь-яких запитань або проблем. Ми гарантуємо повне задоволення вашими покупками. Після придбання обладнання у компанії LSJ ви отримуєте гарантію терміном три роки. Також ви можете скористатися спеціалізованою післяпродажною підтримкою від нас.
Вибираючи LSJ, ви обираєте надійність у якості, обслуговуванні та безпрецедентну підтримку. Ми з нетерпінням чекаємо на співпрацю з вами як із надійним партнером у сфері міського пошуку та рятувальних робіт, а також у справах пожежників. З 2013 року компанія LSJ розробляє, виробляє та постачає високопродуктивне обладнання для пошуково-рятувальних робіт і спорядження пожежників, зокрема тепловізійні камери для огляду будівель. Компанія LSJ отримала сертифікати ISO9001, CE та ROHS. Також у неї понад 30 патентів. Ми значно інвестуємо в наш відділ досліджень і розробок, оскільки є провідним підприємством у галузі. У 2024 році LSJ взяла участь у чотирьох ключових виставках: INTERSEC у Дубаї, Securika 2024, 18-й виставці Defence Services Asia (DSA) та 3-й виставці National Security Asia (NATSEC) у Малайзії, а також виставці NFPA у США. Ми також зареєструвалися на виставку INTERSEC у Дубаї, яка відбудеться 14–16 січня 2025 року. Там ми продемонструємо свій радарний детектор присутності в реальному часі — 3D-радар для виявлення перегородок, газовий детектор, аудіо- та відеозасоби прослуховування, а також обладнання для моніторингу стабільності та тепловізійні камери для боротьби з пожежами. Запрошуємо вас відвідати наш стенд. Компанія LSJ має 11-річний досвід виробництва. Її фахівці спеціалізуються на розробці та створенні нових продуктів, орієнтованих на конкретні сценарії використання клієнтів. Вони постійно вдосконалюють технічні можливості продуктів і знижують їх собівартість. LSJ також має значний досвід у сфері міського пошуку й рятування. Наприклад, під час землетрусу в Туреччині у 2023 році радарний детектор життя LSJ відіграв вирішальну роль у рятувальних операціях китайської команди «Blue Sky Rescue». Оберіть LSJ для передових, надійних рішень, розроблених спеціально для задоволення ваших потреб. Ми надаємо послуги пожежно-рятувальним підразділам, постачаємо тепловізійні камери для огляду житлових приміщень, міським рятувальним підразділам та різним військовим формуванням. Компанія LSJ пропонує інноваційне обладнання для гасіння пожеж, проведення пошуково-рятувальних робіт та роботи в середовищах з підвищеною вибухонебезпекою в різних галузях. Тепловізійні камери для гасіння пожеж. Ми розробили та дослідили два типи тепловізійних камер із трьома різними рівнями роздільної здатності. Ці камери здатні вимірювати температуру до 2000 °C. Обладнання для пошуку та рятування: Ми пропонуємо різноманітні продукти, зокрема газоаналізатори, прилади контролю стабільності та системи моніторингу руху. Промислові тепловізійні камери: Компанія LSJ надає тепловізійні камери, які застосовуються не лише для гасіння пожеж, а й для огляду будівель, електронного ремонту, виявлення протікань води та перевірки систем опалення, вентиляції та кондиціонування повітря (HVAC). Тепловізійні приціли: Приціли з нічним баченням ідеально підходять для спостереження в темряві. Вони також користуються популярністю серед мисливців. Їх легко встановлювати на гвинтівки. Компанія LSJ пропонує високоякісне тепловізійне рятувальне та візуалізаційне обладнання, що відповідає вимогам різних галузей, і підвищує безпеку та ефективність вашого бізнесу. Обирайте LSJ для отримання найбільш передових і надійних рішень. Обов’язково довіряйте LSJ як свого першого партнера у справах міського пошуку та рятування. тепловізійна камера для огляду будинків у компанії LSJ. Ми розуміємо, наскільки важливо пропонувати нашим клієнтам продукцію високої якості та переважне обслуговування. Саме тому ми надаємо гарантії тривалістю один або п’ять років — це свідчить про нашу впевненість у міцності та ефективності наших товарів. Ми зобов’язуємося проводити дослідження та розробки, щоб гарантувати відповідність наших продуктів найвищим стандартам. Як виробник, ми забезпечуємо суворий контроль якості на всіх етапах — від початкових сировинних матеріалів до виробництва. Незалежно від того, чи є ви приватним покупцем, дистриб’ютором, учасником тендеру чи навіть державною установою, ми пропонуємо широкий асортимент продукції, яка задовольнить ваші вимоги. Крім того, ми підтримуємо великий запас сировини та інших компонентів, щоб гарантувати оперативну доставку кожного замовлення. У разі порушення строків доставки ми повертаємо клієнтам від 2 % до 5 % вартості покупки. Щоб допомогти вам ефективно використовувати нашу продукцію та максимально реалізувати її потенціал, ми надаємо детальні навчальні відео. Крім того, ми можемо організувати виїзд нашого технічного персоналу для проведення індивідуального навчання на місці, адаптованого до ваших потреб, щоб ви могли впевнено й зручно користуватися нашою продукцією. Оберіть LSJ, щоб отримати високоякісну й надійну продукцію та виняткове обслуговування клієнтів. Авторське право © Пекінська компанія LSJ Technology Development Co., Ltd. Всі права захищені
-
Політика конфіденційності
теплова камера для перевірки будинку
Виявлення прихованих проблем у вашому домі за допомогою теплової камери

Покращення енергоефективності завдяки тепловим оглядах

Виявлення потенційних проблем до того, як вони загостряться, за допомогою тепловізійної зйомки

Інвестуйте в спокій із тепловою камерою для огляду будинку.
Why choose LSJ Technology теплова камера для перевірки будинку?
Чому LSJ може бути вашим основним виробником та постачальником?
Інноваційний виробник високопродуктивного обладнання для пошуку та рятування
Повний набір обладнання для міського пошуку та врятування Зачини постачання обладнанням
Гарантування якості та вчасної доставки: зобов'язання LSJ щодо задоволення клієнтів
Супутні категорії товарів
Не можете знайти те, що шукаєте?
Замовити пропозицію зараз
Зверніться до наших консультантів, щоб дізнатися про наявні продукти.ЗВ'ЯЖІТЬСЯ З НАМИ