? Să începem explorarea...">
,需要通过父级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);
}
});
})();
Ești pregătit să pătrunzi în întuneric și să dezvei secrete ascunse cu un instrument magic numit dispozitiv portabil de imagine termică ? Hai să explorăm împreună lumea fascinantă a tehnologiei cu LSJ Technology! Ei bine, imaginați-vă că ați putea vedea în întuneric, exact ca un supererou! Acum, datorită unui imagine termică portabilă de la LSJ Technology, puteți face acest lucru. Iarăși: aveți un dispozitiv inteligent care poate detecta semnături termice, transformându-le în imagini luminoase și colorate pe care le puteți observa pe un ecran. Poate fi utilizat pentru a explora locuri întunecoase, pentru a căuta obiecte pierdute sau chiar pentru a juca un joc clasic în întuneric. E ca și cum ați avea o superputere personală! V-ați dorit vreodată să puteți vedea lucruri care sunt imposibil de observat cu ochiul liber? Cu un imagineur termic portabil LSJ Technology camera de imaginare termică , poți experimenta mai mult decât înainte și poți deschide ușa potențialului. Acest dispozitiv portabil îți permite să vezi sursele de căldură care de obicei sunt invizibile pentru ochiul liber, oferindu-ți ocazia să descoperi unde se ascunde animalul tău de companie pierdut, să urmărești animalele cu sânge cald în pădure sau chiar să găsești surse de pericol din apropierea ta. E ca și cum ai purta o pereche specială de ochelari care pot vedea după colțuri sau pot vedea lucruri pe care alții nu le pot. Prioritatea numărul unu este să fii în siguranță, mai ales atunci când explorezi situații noi și/sau potențial periculoase. Rămâi în siguranță și sănătos oriunde te duci, cu un imagine termică portabil de la LSJ Technology. Acest produs poate ajuta la detectarea pericolului ascuns în întuneric și poate salva viața în caz de urgență; va fi un paznic al siguranței bunăstării tale și a proprietății tale, precum și a familiei tale. E ca și cum ai avea un tovarăș credincios care are grijă de tine și te protejează de pericole. Ai fost vreodată fascinat de rezolvarea misterelor ca un profesionist? Cu un aparat de imagistică termică de la LSJ Technology , puteți identifica pericolele ascunse și vă puteți proteja prietenii și familia de o eventuală catastrofă. Acest dispozitiv este conceput pentru detectarea optimă a diferențelor de temperatură și a potențialelor pericole din jurul dvs. Indiferent dacă faceți camping, efectuați o anchetă polițienească sau pur și simplu jucați v-ați ascunselea, acest dispozitiv electronic poate accelera în mod semnificativ activitatea dvs. de detecție și localizare. Este uimitor ce poate face tehnologia pentru a-ți schimba viața și a face orice lucru posibil. Imagierul termic portabil LSJ Technologies îți oferă accesul la tehnologii avansate chiar în palma mâinii tale. Acest dispozitiv, încorporat într-un corp compact care cântărește aproximativ 400 g, oferă imagini excepționale chiar și în condiții de lumină scăzută și este echipat cu un senzor CMOS de înaltă sensibilitate de 20,1 megapixeli tip 1 inch, un obiectiv optic cu unghi extrem de larg de 24 mm/17 mm (echivalent film 35 mm), zoom optic de înaltă mărire 4,2x și un ecran LCD capacitiv tactil de 3,0 inch. Astfel, fie că ești un aventurier curios, un erou preocupat de siguranță, un tânăr Einstein sau o persoană de orice vârstă care refuză să accepte limitele mediocrității, există un produs potrivit pentru tine! La LSJ suntem experți în producerea de echipamente de înaltă calitate pentru căutare și salvare în mediul urban, concepute pentru a îndeplini cele mai înalte standarde internaționale.
Servicii pre-vânzare:
Suntem aici să vă ajutăm chiar de la început. Vă oferim consultanță completă, astfel încât să înțelegem pe deplin nevoile dumneavoastră și să vă propunem soluții adecvate. De asemenea, vă oferim demonstrații ale produselor, împreună cu specificații tehnice detaliate, pentru ca să dețineți toate informațiile necesare luării unei decizii informate.
Servicii de vânzare:
În timpul procesului de vânzare, vă asigurăm o experiență eficientă cu un imagist termic portabil. Garantăm livrarea produselor dumneavoastră la timp și în stare perfectă, datorită sistemului nostru automatizat de comenzi și unui control riguros al calității. Ofertăm, de asemenea, livrare „de la ușă la ușă”.
Servicii post-vânzare:
După ce ați primit bunurile, parteneriatul nostru cu dumneavoastră nu se încheie. Serviciile noastre extinse post-vânzare includ sprijin pentru instalare, instruire utilizatori și întreținere. Departamentul nostru de servici clienți este mereu disponibil pentru a rezolva orice întrebări sau nelămuriri pe care le puteți avea, asigurându-vă satisfacția deplină. Odată ce achiziționați echipamente de la LSJ, vă oferim o garanție de trei ani, iar serviciile post-vânzare specifice pot fi obținute de la noi.
Alegerea LSJ înseamnă alegerea încrederii, calității și unui sprijin fără precedent. Așteptăm cu nerăbdare să devenim partenerii dumneavoastră în domeniul căutării și salvării în mediul urban, precum și în cel al pompierilor. Noi, de la LSJ, suntem conștienți de importanța de a oferi clienților noștri produse de calitate, precum și un serviciu excepțional. Ofertăm o garanție de unul sau cinci ani pentru a demonstra încrederea pe care o avem în durabilitatea și performanța produselor noastre. Suntem producători de imagini termice portabile și investim în cercetare și dezvoltare pentru a ne asigura că produsele noastre îndeplinesc cele mai înalte standarde. Ca producător, menținem procese stricte de control al calității, de la materiile prime până la producția finală. Ofertăm o gamă variată de produse care vor satisface nevoile oricărui client. Stocul nostru de materii prime, componente și alte produse este suficient pentru a asigura livrarea rapidă. Vă vom rambursa până la 5% din valoarea comenzii dacă nu putem livra comanda în momentul solicitat. Pentru a vă ajuta să folosiți produsele noastre în cel mai eficient mod, oferim videoclipuri tutoriale detaliate. În plus, putem organiza instruire pe loc, realizată de echipa noastră tehnică, adaptată în mod specific nevoilor dumneavoastră, pentru a vă asigura că puteți utiliza produsele noastre cu încredere și ușurință. Alegeți LSJ pentru produse fiabile și de înaltă calitate, precum și pentru un serviciu excelent către clienți. Oferim sprijin departamentelor de Pompieri și Salvare, precum și serviciilor de Siguranță Publică și echipelor urbane de căutare și salvare. LSJ oferă echipamente inovatoare, de la imagini termice portabile până la realizarea operațiunilor de căutare și salvare și lucrul în zone periculoase, în diverse industrii. Camere termice pentru stingerea incendiilor: Am studiat și dezvoltat două tipuri de camere termice. Acestea sunt disponibile în trei opțiuni de rezoluție: 256×192, 384×288 și 640×512. Aceste camere pot măsura temperaturi până la 2000 de grade Celsius. Echipamente pentru căutare și salvare: Oferim o gamă largă de produse, inclusiv monitoare de stabilizare, detectoare de gaze și sisteme de monitorizare a mișcării. Camere termice industriale: În afară de camerele termice destinate stingerii incendiilor, LSJ oferă camere termice portabile pentru detectarea scurgerilor de apă și inspecții ale clădirilor, precum și pentru reparații electronice, identificarea pierderilor de căldură în sistemele de încălzire prin pardoseală și inspecția sistemelor HVAC. Scopuri termice / Scopuri cu vizibilitate nocturnă: Sunt ideale pentru vizibilitatea nocturnă și sunt foarte populare printre vânători. Pot fi montate pe puști. LSJ este dedicată furnizării de echipamente de imagistică termică și de salvare de cea mai înaltă calitate, pentru a satisface cerințele diverselor industrii, crescând astfel siguranța și eficiența. LSJ oferă cele mai sigure și avansate soluții. Vă puteți baza pe LSJ ca partener principal în domeniul căutării și salvării urbane. De la 2013, LSJ dezvoltă, produce și furnizează dispozitive portabile de imagistică termică precum și echipamente de salvare și pentru pomieri. LSJ este acreditată de ISO9001, CE, ROHS și MSDS, și a obținut peste 30 de brete. Ca companie de avantaj, investim multe fonduri în departamentul nostru de design și cercetare. LSJ a participat la patru evenimente importante în 2024: INTERSEC, Securika, al 18-lea Defence Services Asia și al 3-lea National Security Asia în Malaysia, precum și la NFPA, în Statele Unite ale Americii. În 2025, suntem înregistrati să participăm la INTERSEC 2025, care va avea loc la Dubai între 14-16 ianuarie. Vom prezenta camere termice pentru pomieri, precum și dispozitive de supraveghere audio și video, detectoare de gaze, radar 3D și alte produse. V-am invita să veniți la stand-ul nostru. Cu 11 ani de experiență în producție, LSJ se specializează în redesenarea și fabricarea de noi produse bazate pe situațiile de utilizare ale clientilor, îmbunătățind continuu funcționalitățile și reducând costurile produselor. LSJ are, de asemenea, o experiență extensivă în domeniul căutării și salvării urbană. La cutremurul din Turcia din 2023, detectorul de semne vitale cu tehnologie radar a LSJ a fost esențial în eforturile echipei chineze Blue Sky Rescue Team de a salva vieți. Alegeți LSJ pentru a beneficia de cea mai recentă tehnologie adaptată nevoilor voastre. Drepturi de Autor © Beijing LSJ Technology Development Co., Ltd. Toate Drepturile Rezervate
-
Politica de confidențialitate
dispozitiv portabil de imagine termică
Îmbunătățiți-vă viziunea cu un dispozitiv portabil de imagistică termică

Rămâneți în siguranță cu un imagineur termic portabil

Detectați amenințările ascunse cu ușurință folosind o cameră de imagistică termică

Experimentați tehnologia avansată în palma mâinii cu un imagineur termic portabil
Why choose LSJ Technology dispozitiv portabil de imagine termică?
De Ce LSJ Poate Fi Producătorul și Furnizorul Tău Principal?
Asigurarea Calității și a Livrării În Timp: Angajamentul LSJ de Satisfacere a Clientului
O lanțuri de aprovizionare completă cu echipamente pentru căutare și salvare urbană
Inovând ca fabricant de echipamente de căutare și salvare cu performanță înaltă
Categorii de produse conexe
Nu găsiți ceea ce căutați?
Solicitați acum o ofertă
Contactați consultanții noștri pentru mai multe produse disponibile.Contactați-ne