ruční tepelné zobrazování (Obrázek 1...">
,需要通过父级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);
}
});
})();
Přejete si vědět, jak teplé něco je, aniž byste se k tomu přibližovali příliš blízko? To je ten okamžik, kdy jednoduchý, poměrně levný nástroj — ruční termovize (Obrázek 1) prezentovaný v tomto článku — může být použit trvale. Chladné gadgety, které vám pomohou vidět rozdíly v teplotách a řeknou vám, co je horké nebo studené bez nutnosti je dotýkat. Znělo by to, jako by přicházelo z sci-fi filmu, ale pravda je, že tato technologie existuje a může být použita mnoha způsoby! Můžete je použít tisíci způsoby, jako například kontrola, zda je vaše jídlo na požadované teplotě, nebo nalezení tepelné izolace za nábytkem. Také vám řeknou, zda váš motor přehřál! Dalším hlavním výhodou, kterou si můžete užít, pokud investujete do technologie jako tato, je kompaktní a lehká designová forma, kterou mají mnoho z těchto přenosných tepelných kamer. Znamená to, že je budete moci brát kamkoli bez jakéhokoli problému. Bez ohledu na to, jestli jste doma nebo podnikáte cestu, zařízení je dostatečně malé, aby se dalo snadno nosit s sebou a monitorovat krevní tlak. Úžasné tepelné skenovací funkce u přenosných tepelných kamer. Infradukční termografie: Umožňuje kameře detekovat teplotní rozdíly z velké vzdálenosti. Je to nicméně menší než mít rentgenové vidění, když sledujete, jak se svět a všechno kolem postupně mění barvu od horké červené přes žlutou/zelenou až po studenou modrou. Skenování ETW pomocí infračerveného světla umožňují senzory, konkrétně ASpatial X. Toto je typ světla, které dostáváme od horkých nebo studených objektů. Tyto senzory registrovávají světlo a vytvářejí obraz na obrazovce pro nás. Je docela zábavné, jak technologie dokáže odhalit to, co by jinak zůstalo neviditelné pro lidské oči. Přenosnost ručního termálního snímače je jednou z největších výhod. Je to také naprosto jednoduché — stačí namířit přístroj na to, co chcete změřit, a během sekundy uvidíte jeho teplotu. To znamená, že nemusíte čekat půl hodiny – až se tam dostane voda, ať už horká či studená! Jsou praktickou součástí vašeho domácího vaření. Teplota – Pravděpodobně nejužitečnější nástroj při vaření, díky němu víte, že vaše jídlo vyšlo dokonale. Ale tento malý přístroj můžete použít i k jiným účelům, jako například ke kontrole teploty ve vašem ledničce nebo k nalezení míst, odkud v domě uniká teplo. Poskytujeme služby hasičským a záchranným sborům, ručním zařízením pro termovizní snímkování, týmům pro městské vyhledávání a záchranné práce (USAR) a různým armádám. Společnost LSJ poskytuje inovativní vybavení pro hašení požárů, provádění vyhledávacích a záchranných operací a práci v prostředích s rizikem výbuchu napříč různými odvětvími. Termokamery pro hasiče: Navrhli jsme a výzkumem prokázali dvě řady termokamer se třemi různými rozlišeními. Tyto kamery jsou schopny měřit teploty až do 2000 °C. Vybavení pro vyhledávání a záchranné práce: Nabízíme širokou škálu produktů, včetně detektorů plynů, monitorů stability a systémů pro sledování pohybu. Průmyslové termokamery: Společnost LSJ nabízí termokamery, které nejsou určeny pouze pro hasiče, ale také pro kontrolu budov, elektronické opravy, detekci úniků vody a inspekci systémů vytápění, ventilace a klimatizace (HVAC). Termické zaměřovače: Noční vidění je ideální pro viditelnost za tmy. Jsou také velmi populární mezi myslivci. Lze je snadno upevnit na pušky. Společnost LSJ nabízí vysoce kvalitní termické záchranné a zobrazovací vybavení, které splňuje požadavky různých odvětví a zvyšuje bezpečnost a efektivitu vašeho podnikání. Vyberte si LSJ pro nejmodernější a nejspolehlivější řešení. Mějte jistotu, že společnost LSJ bude vaším prvním partnerem pro městské vyhledávání a záchranné práce. LSJ je průkopníkem ve vývoji ručních zařízení pro termovizní zobrazování a vybavení pro městské pátrací a záchranné operace, které splňují mezinárodní normy.
Předprodejní služby:
Náš tým odborníků je připraven vám pomoci již od samotného začátku. Nabízíme podrobné konzultace, abychom plně pochopili vaše požadavky a vytvořili pro vás individuální řešení. Poskytujeme podrobné technické specifikace výrobku i demonstraci, abychom vám pomohli učinit informované rozhodnutí.
Prodejní služby:
Zajistíme, aby celý prodejní proces probíhal hladce a efektivně. Díky optimalizovanému systému objednávek a přísné kontrole kvality zaručujeme, že vaše zboží dorazí včas a v dokonalém stavu. Nabízíme také doručení přímo na adresu zákazníka.
Služby po prodeji:
Naše spolupráce s vámi nekončí dodáním našeho zboží. Naše rozsáhlé služby po prodeji zahrnují pomoc při instalaci, školení uživatelů a údržbu. Náš tým zákaznické podpory je připraven pomoci vám s jakýmikoli problémy či dotazy a zajistit vám naprostou spokojenost. Při nákupu zařízení od společnosti LSJ poskytujeme záruku na tři roky a můžete od nás získat konkrétní služby po prodeji.
Když si vyberete LSJ, vybíráte kvalitu, spolehlivost a nekonkurovatelné služby. Těšíme se na spolupráci s vámi v oblasti městského pátrání a záchrany a hasičství. Od roku 2013 se společnost zabývající se ručními zařízeními pro termovizní zobrazování vyvíjí, vyrábí a dodává vysoce výkonné vybavení pro hledání a záchranné operace a pro hasičské vybavení. Společnost LSJ získala certifikáty ISO 9001, CE a RoHS. Společnost drží také více než 30 patentů. Významně investujeme do našeho výzkumného a konstrukčního oddělení, neboť jsme vedoucím podnikem v tomto oboru. V roce 2024 se LSJ zúčastnila čtyř hlavních veletrhů: INTERSEC v Dubaji, Securika 2024, 18. mezinárodního veletrhu obranných služeb (DSA) a 3. mezinárodního veletrhu bezpečnosti (NATSEC) v Malajsii a také veletrhu NFPA ve Spojených státech amerických. Dále jsme již registrováni na veletrhu INTERSEC v Dubaji, který se uskuteční 14.–16. ledna 2025. Tam budeme prezentovat náš radar pro živé detekce, 3D radar schopný detekovat stěny, detektor plynu, audio- a videozaznamenávací zařízení, stejně jako zařízení pro monitorování stability a tepelné kamery určené k hašení požárů. Rádi bychom Vás pozvali na náš stánek. Společnost LSJ má 11 let zkušeností s výrobou. Je odborníkem na vývoj a konstrukci nových produktů založených na konkrétních scénářích použití zákazníků. Společnost dále neustále zlepšuje funkční vlastnosti svých produktů a snižuje jejich náklady. LSJ má také rozsáhlé zkušenosti s městským hledáním a záchrannými operacemi. Například při zemětřesení v Turecku v roce 2023 sehrál radar pro detekci života LSJ klíčovou roli v záchranných akcích čínského týmu Blue Sky Rescue. Vyberte si LSJ pro pokročilá, spolehlivá řešení přizpůsobená přesně Vašim požadavkům. Společnost LSJ si uvědomuje, jak důležité je nabízet svým zákazníkům vysoce kvalitní produkty a vynikající služby – a to zejména u ručních zařízení pro termovizní zobrazování. Proto poskytujeme záruky trvající jeden nebo pět let. To odráží naši důvěru ve vysokou kvalitu našich výrobků. Významně investujeme do výzkumu a vývoje, abychom zajistili, že naše produkty splňují nejvyšší standardy. Jako výrobce uplatňujeme přísné procesy řízení kvality od počátku zpracování surovin až po výrobu. Nabízíme širokou škálu produktů, které vyhoví potřebám každého uživatele. Naše skladové zásoby surovin, komponent a dalších výrobků jsou dostatečné, aby bylo zajištěno dodání vašeho objednávky včas. Pokud bychom nebyli schopni dodat včas, zavazujeme se vrátit našim klientům mezi 2 % a 5 % hodnoty nákupu. Abychom vám usnadnili používání našich produktů, poskytujeme podrobná výuková video. Kromě toho můžeme na vaši žádost zajistit přítomnost našich technických specialistů na místě, kteří poskytnou individuálně přizpůsobenou školení, abyste mohli naše produkty využívat sebejistě a bez obtíží. Zvolte společnost LSJ pro spolehlivé, vysoce kvalitní produkty a vynikající zákaznický servis. Copyright © Beijing LSJ Technology Development Co., Ltd. Všechna práva vyhrazena
-
Zásady ochrany osobních údajů
přenosný termální zařízení
Přenosná a přesná detekce teploty

Technologie detekce tepla v dlani vaší ruky

Revolutionizujte své inspekce pomocí přenosného termálního obrazování

Rychlá a efektivní kontrola teploty kdekoli a kdykoli
Why choose LSJ Technology přenosný termální zařízení?
Úplná dodavatelská řetězec vybavení pro městské hledání a záchranu
Proč může být LSJ vaším prvořadým výrobcem a dodavatelem?
Inovující výrobce vysokoefektivních vybavení pro hledání a záchranné operace
Zajištění kvality a časové dodání: závazek LSJ ke spokojenosti zákazníků
Související kategorie produktů
Nemůžete najít, co hledáte?
Vyžádevat nabídku nyní
Kontaktujte naše konzulty pro více dostupných produktů.KONTAKT