,...">
,需要通过父级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);
}
});
})();
Domov /
Nikdy ste sa zamýšľali nad tým, ako by bolo mať super schopnosť vidieť v tme? S technológiou LSJ najlepšia prenosná termická kamera sa vám môže tento sen teraz splniť. Zostaňte v bezpečí a sledujte tmu s touto špeciálnou kamerou. Či už táboříte v noci alebo presvedčujete sa o tom, čo sa deje v záhrade po západe slnca, prenosná termovízna kamera vám pomôže zostať v bezpečí a byť si vedomý svojho okolia. Táto kamera dokáže vidieť teplo, čo vám umožní vidieť aj v úplnej tme. Zistite, odkiaľ teplo prichádza, pomocou ručnej termovíznej kamery. Ste už niekedy sedeli a premýšľali o tom, odkiaľ v dome prichádza teplo? LSJ Technology Rozhrejte tú vašu termovíznu kameru! LSJ Technology kapesná termálna kamera môže ušetriť peniaze na vašich energiách a spraviť váš domov pohodovejším miestom. Najlepšia ručná termovízna kamera. Kamera spoločnosti LSJ Technology je fantastickým spôsobom, ako objavovať svet. Pre milovníkov prírody, experimentátorov alebo zvedavých renesančných typov ponúka táto kamera veľa možností na skúmanie. Môžete pátrať za zvieratami v noci alebo riešiť elektrické problémy vo vašom dome. Spoločnosť LSJ Technology najlepší prenosný tepelný imagér je absolútne fantastická! Využite silu termálneho zobrazovania v dlani vašej ruky. Technológia LSJ prenosný infračervený termálny obrazovací prístroj vám môže pomôcť ZAZNAMENAŤ tepelné vzory, ktoré by ste inak nevideli. Táto kompaktná a ľahko použiteľná kamera otvára úplne nový svet možností. Od roku 2013 spoločnosť LSJ vyvíja, vyrába a dodáva vysokej kvality vybavenie pre vyhľadávaciu a záchrannú činnosť a pre hasičov. Spoločnosť LSJ získala certifikáty ISO 9001, ručný termovízny prístroj a RoHS. Okrem toho drží viac ako 30 patentov. Veľké prostriedky investujeme do nášho dizajnového a výskumného oddelenia, pretože sme vedúcim podnikom. V roku 2024 sa LSJ zúčastnila štyroch veľkých udalostí: INTERSEC v Dubaji, Securika 2024, 18. medzinárodnej výstavy obranných služieb Asia (DSA) a 3. medzinárodnej výstavy národnej bezpečnosti Asia (NATSEC) v Malajzii, ako aj konferencie NFPA v USA. Okrem toho sme sa už prihlásili na účasť na výstave INTERSEC v Dubaji od 14. do 16. januára 2025. Na tejto výstave budeme predvádzať naše radarové detektory života, 3D radar schopný prehliadať steny, detektory plynov, audio- a videozaložené posluchové zariadenia, ako aj zariadenia na monitorovanie stability a termokamery na boj proti požiarom. Pozývame Vás na návštevu nášho stánku. Spoločnosť LSJ má 11-ročné skúsenosti s výrobou. Špecializuje sa na vytváranie a výrobu inovatívnych výrobkov založených na konkrétnych používacích scénariách zákazníkov. Súčasne neustále zvyšujeme svoje kapacity a znižujeme náklady na výrobky. Spoločnosť LSJ má rozsiahle skúsenosti s mestskou záchrannou činnosťou aj vyhľadávaním. V roku 2023 počas zemetrasenia v Turecku hral radarový detektor života LSJ kľúčovú úlohu pri záchranných operáciách čínskeho tímu Blue Sky Rescue. Vyberte si LSJ, ak chcete získať high-tech riešenia prispôsobené presne Vašim špecifickým potrebám. My spoločnosti LSJ si uvedomujeme, aký dôležitý je pre našich zákazníkov ponúkať výrobky najvyššej kvality a ručné termovízne kamery. Ponúkame záruky na jeden alebo päť rokov, čo odzrkadľuje našu presvedčenosť o dlhovekosti a výkonnosti našich výrobkov. Naše významné investície do výskumu a vývoja zaisťujú, že vaše výrobky spĺňajú najvyššie štandardy. Ako výrobná spoločnosť dodržiavame prísne kontroly kvality – od surovín až po výrobný proces. Bez ohľadu na to, či ste súkromný zákazník, distribútor, účastník verejnej súťaže alebo štátna inštitúcia, ponúkame širokú škálu výrobkov, ktoré vyhovujú vašim požiadavkám. Náš sklad surovín, komponentov a iných položiek je dostatočne veľký na zabezpečenie termínovej dodávky. Ak dodávku nezabezpečíme v dohodnutom termíne, zaväzujeme sa vrátiť vám až 2 % – 50 % celkovej hodnoty objednávky. Poskytujeme podrobné návody a videoinštrukcie, ktoré vám pomôžu efektívne používať naše výrobky. Okrem toho môžeme organizovať aj osobné technické školenia priamo na mieste, prispôsobené vašim požiadavkám, aby ste mohli naše výrobky používať s istotou a pohodlím. Vyberte si spoločnosť LSJ pre výrobky vysokého kvality a spoľahlivosti a vynikajúcu zákaznícku podporu. V spoločnosti LSJ sme odborníkmi na vývoj vysokej kvality vybavenia pre mestské pátracie a záchranné operácie, ktoré je vyrobené tak, aby spĺňalo najvyššie medzinárodné štandardy.
Predpredajná služba:
Sme tu, aby sme vám pomohli od samého začiatku. Ponúkame komplexné poradenstvo, aby sme pochopili vaše potreby a vyvinuli príslušné riešenia. Poskytujeme tiež ručné teplomery s termovíziou, ktoré obsahujú podrobné technické špecifikácie produktov, aby ste mali k dispozícii všetky potrebné informácie na prijatie dobre informovaného rozhodnutia.
Predajná služba:
Počas predaja sa postaráme o to, aby ste mali hladký a efektívny nákupný proces. Zaručujeme, že vaše tovar dorazí včas a v dokonalej stave, vďaka našej efektívnej systémovej správe objednávok a prísnej kontrole kvality. Ponúkame tiež doručenie „dvere-dvere“.
Po predajnej službe:
Naša spolupráca s vami nekončí po prijatí našich výrobkov. Naša komplexná po predajná podpora zahŕňa pomoc pri inštalácii, školenie používateľov a údržbu. Máme tím zákazníckej podpory, ktorý je k dispozícii 24 hodín denne. Tento tím je schopný rýchlo reagovať na akékoľvek otázky alebo problémy a zaručiť vašu spokojnosť. Všetky vybavenia zakúpené od spoločnosti LSJ sú pokryté zárukou na dobu 3 rokov. Okrem toho môžete využívať aj naše po predajné služby.
Voľba spoločnosti LSJ znamená voľbu spoľahlivosti, vysokokvalitného vybavenia a nezrovnateľnej podpory. Tešíme sa na spoluprácu s vami v oblasti mestského pátrania a záchrany, ako aj hasičských operácií. Poskytujeme služby hasičským a záchranným zložkám, ručným teplomery s termovíziou, tímom pre mestské vyhľadávanie a záchrany a rôznym armádam. Spoločnosť LSJ poskytuje inovatívne vybavenie na hasenie požiarov, vykonávanie vyhľadávania a záchrany a prácu v prostredí s výbušnými látkami v rôznych odvetviach. Teplomery na hasenie požiarov. Navrhli sme a výskumne preštudovali dva typy teplomerov s termovíziou, ktoré ponúkajú tri rôzne rozlíšenia. Tieto teplomery dokážu merať teploty až do 2000 °C. Vybavenie na vyhľadávanie a záchrany: Ponúkame rôzne produkty, vrátane detektorov plynov, monitorov stability a systémov na monitorovanie pohybu. Priemyselné teplomery s termovíziou: Spoločnosť LSJ poskytuje teplomery s termovíziou, ktoré sa používajú nielen na hasenie požiarov, ale aj na kontrolu budov, elektronické opravy, detekciu únikov vody a kontrolu systémov vykurovania, vetrania a klimatizácie (HVAC). Termovízne ďalekohľady: Nočné ďalekohľady sú ideálne na zabezpečenie viditeľnosti v noci. Sú tiež veľmi populárne medzi poľovníkmi. Jednoducho sa namontujú na pušky. Spoločnosť LSJ ponúka vysokej kvality termovízne záchranné a zobrazovacie zariadenia, ktoré spĺňajú požiadavky rôznych odvetví a zvyšujú bezpečnosť a účinnosť vašej činnosti. Vyberte si LSJ pre najpokročilejšie a spoľahlivé riešenia. Dôverujte spoločnosti LSJ ako svojmu prvému partnerovi pri mestskom vyhľadávaní a záchrane. Copyright © Beijing LSJ Technology Development Co., Ltd. Všetky práva vyhradené
-
Zásady ochrany súkromia
Kapesná termálna kamera
Zostaňte v bezpečí a viditeľní aj v tme s prenosnou kamerou na termálne zobrazovanie.
Objavte skryté zdroje tepla pomocou ručnej kamery na termálne zobrazovanie.

Najlepšia ručná kamera na termálne zobrazovanie.
Uvoľnite potenciál termálneho zobrazovania priamo vo svojej dlani.
Why choose LSJ Technology Kapesná termálna kamera?
Inovatívny výrobca vysoce výkonného vybavenia na vyhľadávanie a záchranu
Zabezpečovanie kvality a časovej dodávky: Záväzok LSJ na spokojnosť zákazníkov
Prečo môže byť LSJ vaším prvočíslicovým výrobcami a dodávateľom?
Úplná rešta zariadení na mesto prehľadávanie a rýchlu pomoc dodávok zariadení
Súvisiace kategórie produktov
Nenachádzate, čo hľadáte?
Vyžiadať cenovú ponuku teraz
Kontaktujte našich konzultantov pre dostupné produkty.KONTAKTUJTE NÁS