, ed è e...">
,需要通过父级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);
}
});
})();
Salve! Oggi parliamo di uno strumento molto interessante che può aiutarci a localizzare perdite d'acqua nascoste. È conosciuto come telecamera a infrarossi , ed è estremamente sofisticato dal punto di vista tecnologico! Le perdite d'acqua possono essere subdole. A volte non sono nemmeno visibili ad occhio nudo — ma questo non significa che non possano causare danni significativi. Ecco perché un telecamera a infrarossi può essere davvero utile! Questa speciale telecamera è in grado di "vedere" il calore emesso dalle perdite d'acqua, anche attraverso i muri o sotto i pavimenti. In questo modo possiamo individuare rapidamente le perdite e ripararle prima che provochino gravi danni. LSJ Technology’s telecamera a infrarossi è insuperabile nel rilevare danni da acqua. Utilizza tecnologie all'avanguardia per tracciare esattamente da dove provengono le perdite. In questo modo gli idraulici possono individuare facilmente le aree problematiche senza dover demolire l'intera casa. I risparmi a lungo termine in termini di tempo e costi che puoi ottenere individuando perdite d'acqua con una telecamera a infrarossi può essere molto complicato se non lo fai. Con una telecamera al posto di giorni o settimane di ricerca, la fonte della perdita può essere trovata in una frazione di quel tempo. Ciò si traduce in minor tempo necessario per le riparazioni e meno denaro da spendere per sistemare i danni causati dalla perdita. La prevenzione dei danni provocati dall'acqua è più efficace quando il rischio viene ridotto precocemente. Prima si individua una perdita, minori saranno i danni che può causare. Una telecamera per visualizzare la nostra casa in luce infrarossa della LSJ Technology ci ha permesso di rilevare perdite prima che diventassero grossi problemi. Più precocemente troviamo le perdite, più possiamo risparmiare su costose riparazioni e più le nostre case saranno sicure, asciutte e salubri. Le telecamere a infrarossi di LSJ sono un nuovo tipo di strumento per il rilevamento rapido ed efficiente delle perdite. Ci aiutano a individuare perdite che altrimenti passerebbero inosservate, risparmiandoci tempo, denaro e problemi. Ora possiamo dormire sonni tranquilli, sapendo che con questo dispositivo ad alta tecnologia le nostre abitazioni sono al sicuro dai danni causati dall'acqua. Dal 2013, LSJ sviluppa telecamere a infrarossi per la rilevazione di perdite d’acqua e produce e fornisce attrezzature ad alte prestazioni per le operazioni di ricerca e soccorso nonché per i vigili del fuoco. LSJ ha ottenuto le certificazioni ISO 9001, CE e ROHS e detiene inoltre oltre 30 brevetti. In quanto azienda leader, investiamo ingenti risorse nel nostro dipartimento di progettazione e ricerca. Nel 2024 LSJ ha partecipato a quattro importanti eventi internazionali: INTERSEC, Securika, la 18ª edizione di Defence Services Asia e la 3ª edizione di National Security Asia in Malesia, nonché la conferenza NFPA negli Stati Uniti. Nel 2025 siamo iscritti alla fiera INTERSEC, che si terrà a Dubai dal 14 al 16 gennaio. Presenteremo le nostre telecamere termiche per vigili del fuoco, nonché sistemi di monitoraggio audio e video, rilevatori di gas, radar 3D e altri prodotti. Vi invitiamo caldamente a visitare il nostro stand. Con oltre 11 anni di esperienza nella produzione, LSJ è specializzata nella riprogettazione e nella produzione di nuovi prodotti, sviluppati sulla base delle specifiche condizioni d’uso dei clienti, con un costante miglioramento delle funzionalità e una riduzione dei costi. LSJ possiede inoltre una consolidata competenza nel campo del soccorso urbano e della ricerca. Ad esempio, durante il terremoto in Turchia del 2023, il rilevatore di vita radiofonico LSJ ha svolto un ruolo fondamentale nelle operazioni di soccorso condotte dalla squadra cinese Blue Sky Rescue. Scegliete LSJ per soluzioni avanzate, affidabili e personalizzate sulle vostre esigenze specifiche. Forniamo supporto ai Dipartimenti dei Vigili del Fuoco e dei Servizi di Soccorso, nonché ai servizi per la sicurezza pubblica e alle telecamere a infrarossi per la rilevazione di perdite idriche. LSJ fornisce apparecchiature all'avanguardia per spegnere incendi, condurre operazioni di ricerca e soccorso e operare in ambienti pericolosi in una vasta gamma di settori.
Telecamere termiche per antincendio: abbiamo effettuato ricerche e progettato due tipologie di telecamere termiche, disponibili in tre risoluzioni: 256x192, 384x288 e 640x512. Queste telecamere possono monitorare temperature fino a 2000 °C.
Attrezzature per ricerca e soccorso: offriamo una gamma di prodotti tra cui rilevatori di gas, sistemi di monitoraggio della stabilità e sistemi di monitoraggio del movimento.
Telecamere termiche industriali: oltre alle telecamere termiche per antincendio, LSJ offre telecamere termiche portatili per la rilevazione di perdite idriche, ispezioni edilizie, riparazioni elettroniche, individuazione di dispersioni termiche nei pavimenti riscaldati e ispezione dei sistemi HVAC.
Termoscopi: le nostre ottiche per visione notturna sono ideali per l’uso in condizioni di scarsa illuminazione. Sono molto apprezzate anche dai cacciatori e si montano facilmente sui fucili.
LSJ è impegnata a fornire strumenti di termografia e attrezzature per il soccorso di alta qualità, conformi ai requisiti specifici di diversi settori, migliorando così efficienza e sicurezza. Scegliete LSJ per soluzioni altamente sofisticate ed estremamente efficienti.
Affidatevi a LSJ come vostro principale partner nel campo della ricerca e del soccorso urbano. Da LSJ comprendiamo l'importanza di offrire telecamere a infrarossi per la rilevazione di perdite d'acqua e un servizio superiore ai nostri clienti. Offriamo garanzie della durata di uno o cinque anni, a dimostrazione della nostra fiducia nella durata e nella qualità dei nostri prodotti. Investiamo ingenti risorse in ricerca e sviluppo per garantire che i nostri prodotti soddisfino gli standard più elevati. Come produttori, applichiamo rigorose procedure di controllo qualità in ogni fase del processo produttivo, dai materiali grezzi al prodotto finito. Offriamo una vasta gamma di prodotti in grado di soddisfare le esigenze di qualsiasi cliente. Inoltre, manteniamo un ampio inventario di materiali grezzi e componenti per garantire consegne tempestive per ogni ordine. Qualora non riuscissimo a rispettare i termini concordati, rimborseremo il 2%-5% del valore dell’ordine ai nostri clienti. Per aiutarvi a utilizzare al meglio i nostri prodotti, forniamo video esplicativi dettagliati. Possiamo inoltre organizzare corsi tecnici in loco, personalizzati specificamente sulle vostre esigenze, per assicurarvi un utilizzo sicuro e agevole dei nostri prodotti. Scegliete LSJ per prodotti di alta qualità, solidi e affidabili, e per un’assistenza clienti eccezionale. LSJ è leader di mercato nella produzione di telecamere a infrarossi di alta qualità per la rilevazione di perdite d’acqua, conformi agli standard internazionali.
Servizio pre-vendita:
Siamo al vostro fianco fin dall’inizio. Offriamo consulenze complete per aiutarvi a comprendere le vostre esigenze specifiche e fornire soluzioni personalizzate. Mettiamo a disposizione specifiche tecniche e dimostrazioni dei prodotti per supportarvi nella scelta più informata.
Servizio vendita:
Garantiamo che l’intero processo di acquisto sia fluido ed efficiente. Le nostre efficienti telecamere a infrarossi per la rilevazione di perdite d’acqua, unite a rigorosi processi di controllo qualità, assicurano la consegna puntuale dei prodotti in eccellente stato. Offriamo inoltre il servizio di consegna porta a porta.
Servizio post-vendita:
Il nostro rapporto con voi non termina una volta ricevuti i prodotti. Forniamo un’ampia gamma di servizi post-vendita, tra cui assistenza all’installazione, formazione per gli utenti e servizi di manutenzione. Disponiamo di un team dedicato di assistenza clienti sempre a vostra disposizione, pronto ad aiutarvi in caso di dubbi o problemi e a garantire la vostra soddisfazione. Dopo l’acquisto di apparecchiature LSJ, offriamo una garanzia di tre anni e potrete beneficiare di specifici servizi post-vendita da parte nostra.
Scegliere LSJ significa scegliere qualità, affidabilità e un supporto senza pari. Non vediamo l’ora di diventare vostro partner nel campo della ricerca e del soccorso urbano e dei vigili del fuoco. Copyright © Beijing LSJ Technology Development Co., Ltd. Tutti i diritti riservati
-
Informativa sulla privacy
telecamera a infrarossi per perdite d'acqua
Tecnologia avanzata per individuare con precisione i danni causati dall'acqua

Risparmia tempo e denaro con la tecnologia della telecamera a infrarossi

Evita costosi danni da acqua grazie al rilevamento precoce

Soluzione innovativa per identificare rapidamente ed efficientemente le perdite
Why choose LSJ Technology telecamera a infrarossi per perdite d'acqua?
Innovando nel settore degli equipaggiamenti per ricerca e soccorso ad alta prestazione
Catene di approvvigionamento complete per l'attrezzatura di ricerca e soccorso urbano
Garantire Qualità e Consegna Tempestiva: L'impegno della LSJ per la Soddisfazione del Cliente
Perché LSJ Può Essere il Tuo Produttore e Fornitore di Primer?
Categorie di prodotti correlati
Non trovi quello che stai cercando?
Richiedi un preventivo ora
Contatta i nostri consulenti per ulteriori prodotti disponibili.Contattaci