ini bekerja...">
,需要通过父级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);
}
});
})();
Beranda /
Kamera termal genggam adalah alat canggih yang memungkinkan Anda melihat hal-hal yang tidak bisa dilihat oleh mata Anda. Alat khusus ini kamera termal usb bekerja dengan memindai tanda panas, sehingga sangat berguna dalam berbagai situasi. Saatnya membahas tentang kamera termal genggam dan semua hal keren yang bisa dilakukannya Ada banyak keuntungan dari kamera termal genggam. Kamera ini dapat membantu pemadam kebakaran melihat menembus asap sehingga mereka dapat menemukan orang-orang di dalam bangunan yang terbakar. Kamera juga dapat membantu petugas polisi menangkap penjahat yang bersembunyi di tempat gelap. Selain itu, kamera bisa membantu para pemburu mengikuti jejak hewan di hutan. Rasakan pengalaman melihat panas seperti yang belum pernah Anda bayangkan sebelumnya dengan kamera termal genggam LSJ Technology yang luar biasa ini! Apa yang begitu menakjubkan tentang handheld kamera termal usb adalah bagaimana mereka mendeteksi tanda panas. Kamera-kamera ini memiliki sensor unik yang dapat 'melihat' panas itu sendiri sebagai cahaya inframerah. Ketika sesuatu panas, benda tersebut memancarkan cahaya inframerah yang dapat ditangkap oleh kamera. Ini memungkinkan Anda untuk melihat benda-benda panas, bahkan ketika benar-benar gelap. Ini seperti penglihatan malam, hanya saja untuk panas! Portabel kamera termal tipe c dapat mendeteksi tanda panas dari ratusan kaki jauhnya dalam keadaan darurat sehingga sangat cocok untuk pemindaian jarak jauh. Mereka bisa memberi tahu suhu tepat dari sebuah objek, memungkinkan Anda dengan cepat mengetahui apakah sesuatu panas atau dingin. Bahaya tersembunyi bisa menjadi ancaman atau rintangan bagi pekerja yang bekerja sendirian, dan di situlah mereka mungkin mengandalkan kamera termal. Dari semua hal hebat yang bisa Anda katakan tentang kamera termal genggam, kemudahan penggunaannya adalah salah satu yang terbaik. Kamera-kamera ini kecil dan ringan, dan Anda bisa menyelipkannya di saku belakang seperti iPhone, membawanya ke dalam saku, atau memasukkannya ke dalam tas pinggang lalu membawanya ke mana saja. Jika Anda sedang mendaki gunung, menuju hutan untuk perjalanan berkemah semalaman, atau hanya menikmati halaman rumah Anda sendiri, Anda bisa menggunakan kamera termal portabel dari LSJ Technology untuk melihat hal-hal dengan cara yang tidak bisa dilakukan banyak orang. Dan dengan sepasang baterai isi ulang, Anda bisa mengoperasikan kamera selama berjam-jam tanpa harus khawatir kehabisan daya. Kamera termal genggam memiliki banyak kegunaan. Petugas pemadam kebakaran menyelamatkan orang dari bangunan yang terbakar. Polisi menangkap kriminal yang bersembunyi dalam gelap. Tim pencarian dan penyelamatan mencari pendaki yang terjebak di alam liar. Para pekerja konstruksi mencari titik panas dalam sistem listrik. Para pemburu berburu hewan di hutan. Apa pun pekerjaannya, kamera termal genggam LSJ Technology dapat membantu Anda melihat dunia dengan cara yang baru dan segar. Kami menyediakan layanan untuk departemen kamera termal genggam, serta layanan Keselamatan Publik dan tim Pencarian serta Penyelamatan Perkotaan. LSJ menawarkan peralatan mutakhir untuk pencarian dan penyelamatan, pemadaman kebakaran, serta pekerjaan di lingkungan atmosfer eksplosif di berbagai sektor. Kamera Termal untuk Pemadaman Kebakaran: Tim kami telah mengembangkan dan menguji dua jenis kamera termal dengan tiga pilihan resolusi: 256×192, 384×288, dan 640×512. Kamera-kamera ini mampu mengukur suhu hingga 2000°C. Peralatan Pencarian dan Penyelamatan: Kami menawarkan berbagai produk, seperti detektor gas, monitor stabilitas, dan sistem pemantauan pergerakan. Kamera Termal Industri: LSJ menyediakan kamera termal yang tidak hanya digunakan untuk pemadaman kebakaran, tetapi juga untuk inspeksi bangunan, perbaikan elektronik, deteksi kebocoran air, serta inspeksi sistem HVAC. Teropong Termal: Optik penglihatan malam kami ideal untuk visibilitas di malam hari dan juga populer di kalangan pemburu. Teropong ini dapat dipasang dengan mudah pada senapan. LSJ berkomitmen menyediakan peralatan pencitraan termal dan peralatan penyelamatan berkualitas tinggi guna memenuhi kebutuhan berbagai industri, sehingga meningkatkan keselamatan dan efisiensi di seluruh sektor. LSJ menyediakan solusi paling aman dan modern. Anda dapat mempercayai LSJ sebagai mitra utama Anda dalam Pencarian dan Penyelamatan Perkotaan. Di LSJ, kami adalah produsen kamera termal genggam yang sangat memahami pentingnya menyediakan produk berkualitas tinggi serta layanan luar biasa bagi pelanggan kami. Oleh karena itu, kami menawarkan garansi selama satu atau lima tahun. Hal ini mencerminkan kepercayaan kami terhadap kualitas dan kinerja produk-produk kami. Kami mengalokasikan dana besar untuk penelitian dan pengembangan guna memastikan produk kami memenuhi standar tertinggi. Sebagai produsen, kami menerapkan standar pengendalian kualitas yang ketat—mulai dari tahap awal hingga produk akhir. Kami menawarkan beragam produk untuk memenuhi kebutuhan seluruh pengguna. Persediaan komponen, bahan baku, dan barang lainnya dalam inventaris kami cukup besar guna menjamin pengiriman tepat waktu. Jika kami tidak mampu mengirimkan barang sesuai jadwal, kami akan mengembalikan dana Anda hingga maksimal 5% dari nilai pesanan. Untuk membantu Anda memanfaatkan produk kami secara produktif dan efektif, kami menyediakan serangkaian video tutorial lengkap. Kami juga menawarkan pelatihan teknis di lokasi yang disesuaikan khusus dengan kebutuhan Anda, sehingga Anda menjadi kompeten dalam menggunakan produk kami secara efektif dan mudah. Pilih LSJ untuk produk berkualitas, andal, serta layanan pelanggan yang luar biasa. Sejak tahun 2013, LSJ telah mengembangkan manufaktur, pasokan, dan penjualan peralatan pencarian dan penyelamatan berkinerja tinggi serta peralatan untuk petugas pemadam kebakaran. LSJ telah memperoleh sertifikasi dari ISO9001, CE, dan ROHS. Selain itu, LSJ memegang lebih dari 30 paten. Sebagai perusahaan terkemuka, kami berinvestasi secara signifikan dalam departemen desain dan riset kami. Pada tahun 2024, LSJ berpartisipasi dalam empat acara besar: INTERSEC, Securika, Defence Services Asia ke-18 dan National Security Asia ke-3 di Malaysia, serta NFPA di Amerika Serikat. Kami juga telah terdaftar untuk menghadiri INTERSEC pada 14–16 Januari 2025 dengan menampilkan kamera termal genggam, di mana kami akan memamerkan detektor radar langsung kami—radar 3D yang mampu menembus dinding—detektor gas, peralatan pendengaran audio dan video, peralatan pemantauan stabilitas, serta kamera termal untuk penanggulangan kebakaran. Kami dengan hangat mengundang Anda untuk mengunjungi stan kami. LSJ memiliki pengalaman lebih dari 11 tahun dalam bidang manufaktur. Perusahaan ini berspesialisasi dalam menciptakan dan memproduksi produk baru berdasarkan situasi penggunaan pelanggan. LSJ juga terus meningkatkan kemampuan serta menekan biaya produksi produk. LSJ memiliki keahlian luas dalam operasi penyelamatan dan pencarian di perkotaan. Sebagai contoh, selama gempa bumi Turki 2023, detektor kehidupan radar buatan LSJ memainkan peran penting dalam upaya penyelamatan yang dilakukan oleh Tim Penyelamat Langit Biru Tiongkok. Pilih LSJ untuk solusi andal dan mutakhir yang disesuaikan secara khusus dengan kebutuhan Anda. LSJ adalah pelopor dalam pengembangan peralatan pencarian dan penyelamatan di perkotaan berkualitas tinggi yang selaras dengan kamera termal genggam.
Layanan Pra-Penjualan:
Tim spesialis kami siap membantu Anda sejak awal. Kami menawarkan konsultasi komprehensif untuk membantu Anda memahami kebutuhan khusus Anda serta memberikan solusi yang disesuaikan. Kami juga menyediakan demonstrasi produk dan spesifikasi teknis yang detail, sehingga Anda memiliki semua informasi penting guna mengambil keputusan yang tepat.
Layanan Penjualan:
Kami memastikan seluruh proses penjualan berjalan lancar dan efisien. Sistem pemesanan kami yang efisien, ditambah langkah-langkah pengendalian kualitas ketat, menjamin barang pesanan Anda tiba tepat waktu dan dalam kondisi sempurna. Kami juga mendukung layanan pengiriman dari pintu ke pintu.
Layanan Purna-Jual:
Setelah pengiriman barang Anda, kemitraan kami dengan Anda tidak berakhir. Kami menyediakan dukungan purna-jual yang luas, seperti bantuan instalasi, pelatihan pengguna, serta layanan pemeliharaan dan perbaikan. Perwakilan layanan pelanggan kami siap membantu Anda mengatasi segala kekhawatiran atau masalah yang mungkin Anda alami, guna memastikan kepuasan Anda sepenuhnya. Setelah Anda membeli peralatan dari LSJ, kami akan memberikan garansi tiga tahun; Anda juga akan menerima dukungan purna-jual khusus dari kami.
Memilih LSJ berarti memilih keandalan, kualitas, dan layanan tanpa tanding. Kami berkomitmen menjadi mitra Anda dalam operasi pencarian dan penyelamatan di perkotaan serta pemadaman kebakaran. Hak Cipta © Beijing LSJ Technology Development Co., Ltd. All Rights Reserved
-
Kebijakan Privasi
Kamera termal tangan
Cara kamera termal portabel mendeteksi tanda panas

Kemampuan kamera termal portabel
Kenyamanan kamera termal portabel untuk penggunaan saat bepergian

Penerapan kamera termal portabel di berbagai industri
Why choose LSJ Technology Kamera termal tangan?
Suplai Peralatan Pencarian dan Penyelamatan Perkotaan yang Lengkap
Menjamin Kualitas dan Pengiriman Tepat Waktu: Komitmen LSJ terhadap Kepuasan Pelanggan
Inovasi dalam Pabrik Alat Pencarian dan Penyelamatan Bertingkat Tinggi
Mengapa LSJ Bisa Menjadi Produsen dan Pemasok Primer Anda?
Kategori produk terkait
Tidak menemukan yang Anda cari?
Minta Penawaran Sekarang
Hubungi konsultan kami untuk produk lainnya yang tersedia.Hubungi Kami