,...">
,需要通过父级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);
}
});
})();
Heb je je ooit afgevraagd hoe het zou zijn om een superkracht te hebben om in het donker te zien? Met LSJ Technology beste handhoudbare thermische camera kan je die droom nu werkelijkheid maken. Blijf veilig en houd het donker in de gaten met deze speciale camera. Of je nu 's nachts kampeert of rondkijkt in de achtertuin na zonsondergang, een draagbare thermische camera helpt je om veilig te blijven en je bewust te zijn van je omgeving. Deze camera kan warmte detecteren, waardoor je zelfs in het pikkedonker kunt zien. Ontdek waar de warmte vandaan komt met een handmatige thermische camera. Heb je ooit stilgestaan bij de vraag waar de warmte in jouw huis vandaan komt? Ontsteek die thermische camera van je met LSJ Technology! LSJ Technology hand held thermische beeldcamera kan je geld besparen op energiekosten en je thuis een comfortabeler plek maken. De beste handmatige thermische camera. De camera van LSJ Technology is een geweldige manier voor jou om de wereld te verkennen. Voor natuurliefhebbers, doeners of nieuwsgierige renaissancefiguren biedt deze camera veel mogelijkheden. Je kunt 's nachts op dieren jagen of elektriciteitsproblemen in je huis oplossen. De LSJ Technology beste handhafde thermische imager is werkelijk fantastisch! Ontdek de kracht van thermische beeldvorming in de palm van je hand. De LSJ Technology handhoudbare infrarood thermische imager kan helpen om warmtepatronen te ZIEN die je normaal gesproken niet zou kunnen zien. Deze compacte, gebruiksvriendelijke camera opent een hele nieuwe wereld van mogelijkheden. Sinds 2013 ontwikkelt, produceert en levert LSJ hoogwaardige zoek- en reddingsapparatuur en brandweerapparatuur. LSJ heeft certificeringen ontvangen van ISO9001, handbediende thermische beeldcamera’s en ROHS. Daarnaast bezit het bedrijf meer dan 30 octrooien. Wij investeren zwaar in onze afdeling voor ontwerp en onderzoek, aangezien wij een toonaangevend bedrijf zijn. In 2024 nam LSJ deel aan vier grote evenementen: INTERSEC in Dubai, Securika 2024, de 18e Defence Services Asia (DSA) en de 3e National Security Asia (NATSEC) in Maleisië, evenals de NFPA in de Verenigde Staten. Wij zijn ook ingeschreven voor INTERSEC in Dubai van 14 tot en met 16 januari 2025. Tijdens dit evenement zullen wij onze radarlevensdetector, 3D-radar die door muren kan kijken, gasdetectoren, audio- en videogebaseerde afluisterapparatuur, evenwichtsmonitoringapparatuur en thermische camera’s voor brandbestrijding presenteren. Wij nodigen u uit om onze stand te bezoeken. LSJ heeft 11 jaar ervaring in de productie. Het bedrijf is gespecialiseerd in het ontwikkelen en produceren van innovatieve producten op basis van de gebruiksscenario’s van klanten. Daarnaast werkt LSJ voortdurend aan het verbeteren van haar capaciteiten en het verlagen van de productkosten. LSJ beschikt over een ruime ervaring op het gebied van stedelijke reddingsoperaties en zoekacties. In 2023 speelde de LSJ-radarlevensdetector tijdens de aardbeving in Turkije een cruciale rol bij de reddingsinspanningen van het Chinese Blue Sky Rescue Team. Kies voor LSJ om hoogtechnologische oplossingen te ontvangen die specifiek op uw behoeften zijn afgestemd. Wij van LSJ zijn ons bewust van het belang om onze klanten producten van topkwaliteit en handbediende thermische beeldvormingscamera's aan te bieden. Wij bieden garanties van één of vijf jaar, wat onze overtuiging weerspiegelt met betrekking tot de duurzaamheid en prestaties van onze producten op lange termijn. Onze aanzienlijke investering in onderzoek en ontwikkeling garandeert dat uw producten voldoen aan de hoogste normen. Als productiebedrijf hanteren wij strenge kwaliteitscontrole, vanaf de grondstoffen tot en met de productie. Of u nu een particuliere klant, distributeur, inschrijver voor een aanbesteding of overheidsinstantie bent: wij bieden een breed scala aan producten die aan uw eisen voldoen. Onze voorraad grondstoffen, componenten en andere artikelen is ruim voldoende om tijdige levering te waarborgen. Indien wij niet op tijd leveren, verplichten wij ons ertoe om maximaal 2%–50% van de totale orderwaarde aan onze klanten terug te betalen. Wij bieden u gedetailleerde instructies en video’s waarmee u onze producten efficiënt kunt gebruiken. Daarnaast kunnen wij op locatie persoonlijke technische trainingen organiseren, afgestemd op uw behoeften, zodat u onze producten met vertrouwen en gemak kunt gebruiken. Kies voor LSJ als u op zoek bent naar producten van hoge kwaliteit en betrouwbaarheid, en uitstekende klantenservice. Bij LSJ zijn wij experts in de ontwikkeling van hoogwaardige uitrusting voor stedelijke zoek- en reddingsoperaties, vervaardigd volgens de strengste internationale normen.
Pre-sales service:
Wij staan u vanaf het begin bij. Wij bieden uitgebreide consultaties om uw behoeften te begrijpen en op maat gemaakte oplossingen te ontwikkelen. Daarnaast verstrekken wij producten zoals handbediende thermische beeldcamera’s, inclusief gedetailleerde technische specificaties, zodat u alle benodigde informatie in handen heeft om een weloverwogen beslissing te nemen.
Sales service:
Tijdens het verkoopproces zorgen wij voor een soepele en efficiënte ervaring. Wij garanderen dat uw goederen op tijd en in perfecte staat aankomen, dankzij ons efficiënte ordersysteem en strikte kwaliteitscontrole. Wij ondersteunen ook levering op locatie (deur-tot-deur).
After-sales service:
Onze relatie met u eindigt niet zodra u onze producten heeft ontvangen. Onze uitgebreide after-salesondersteuning omvat hulp bij installatie, gebruikersinstructie en onderhoud. Ons klantenserviceteam is 24 uur per dag bereikbaar en kan eventuele vragen of problemen direct aanpakken, om uw tevredenheid te waarborgen. Wij bieden een garantie van 3 jaar op alle apparatuur die u bij LSJ koopt. Daarnaast kunt u ook na-verkoopdiensten bij ons afnemen.
De keuze voor LSJ betekent dat u kiest voor betrouwbaarheid, hoogwaardige kwaliteit en ongeëvenaarde ondersteuning. Wij kijken ernaar uit om uw partner te zijn in stedelijke zoek- en reddingsoperaties én brandbestrijding. Wij leveren diensten aan brandweer- en reddingsdiensten, stedelijke zoek- en reddingsteams en diverse legermachten. LSJ levert innovatieve apparatuur voor het bestrijden van branden, het uitvoeren van zoek- en reddingsoperaties en het werken in explosiegevaarlijke omgevingen binnen diverse sectoren. Thermische camera's voor brandbestrijding: Wij hebben twee soorten thermische camera's ontworpen en onderzocht met drie verschillende resoluties. Deze camera's kunnen temperaturen meten tot 2000 °C. Zoek- en reddingsapparatuur: Wij bieden diverse producten aan, waaronder gasdetectoren, stabiliteitsmonitors en bewegingsbewakingsystemen. Industriële thermische camera's: LSJ levert thermische camera's die niet alleen geschikt zijn voor brandbestrijding, maar ook worden gebruikt voor gebouwinspecties, elektronisch onderhoud, detectie van waterlekkages en inspectie van HVAC-systemen. Thermische vizieren: Nachtzichtvizieren zijn ideaal voor zichtbaarheid 's nachts en zijn ook zeer populair bij jagers. Ze kunnen eenvoudig op geweren worden gemonteerd. LSJ biedt hoogwaardige thermische reddings- en beeldvormingsapparatuur die voldoet aan de eisen van verschillende sectoren en de veiligheid en effectiviteit van uw bedrijf verbetert. Kies voor LSJ als leverancier van de meest geavanceerde en betrouwbare oplossingen. Vertrouw op LSJ als uw eerste partner voor stedelijke zoek- en reddingsoperaties. Copyright © Beijing LSJ Technology Development Co., Ltd. Alle rechten voorbehouden
-
Privacybeleid
Hand held thermische beeldcamera
Blijf veilig en zie in het donker met een draagbare thermische camera.
Ontdek verborgen warmtebronnen met de kracht van een handmatige thermische camera.

De ultieme handmatige thermische camera.
Onthul het potentieel van thermische beeldvorming in de palm van je hand.
Why choose LSJ Technology Hand held thermische beeldcamera?
Innovatieve hoogwaardige zoek- en reddingsapparatuur fabrikant
Kwaliteit en punctuele levering waarborgen: de toewijding van LSJ aan klanttevredenheid
Waarom kan LSJ uw primaire fabrikant en leverancier zijn?
Een volledige keten voor het leveren van uitrusting voor stadsonderzoek en -redding
Gerelateerde productcategorieën
Niet vinden wat u zoekt?
Vraag nu een offerte aan
Neem contact op met onze consultants voor beschikbare productenNEEM CONTACT OP