. VyperIR—Th...">
,需要通过父级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 /
Kita dikelilingi oleh teknologi di dunia modern saat ini. Salah satu teknologi keren yang semakin populer adalah kamera IR genggam . VyperIR—Kamera IR Genggam Masa Depan LSJ Technology memproduksi kamera IR luar biasa yang sangat ideal untuk menjelajahi dunia. Apa yang dapat Anda lakukan dengan kamera IR genggam sungguh menakjubkan. Gawai ini bekerja melalui teknologi inframerah dan mengambil gambar yang sama sekali tidak terlihat oleh mata manusia. Dengan mendeteksi jejak panas, Kamera IR mampu menghasilkan gambar rumit yang memberikan wawasan tentang apa yang tersembunyi di balik dinding-dinding di sekitar kita. Ini adalah alat canggih yang memungkinkan kita melihat hal-hal yang tidak dapat dilihat oleh mata, serta menemukan dunia tersembunyi dari informasi. Luar biasa bahwa detail tersembunyi menjadi terlihat dalam kamera IR di tangan Anda. Kamera ini menggunakan teknologi Inframerah untuk mendeteksi suhu permukaan dan menampilkannya dalam format yang mudah dibaca. Ketika kamera IR diarahkan ke seseorang, Anda dapat melihat gradasi panas di seluruh tubuh mereka, yang menunjukkan area dengan suhu lebih rendah atau lebih tinggi. Ini dapat membantu dalam berbagai situasi, mulai dari mencari hewan peliharaan yang hilang di kegelapan hingga melindungi rumah Anda dari kebocoran atau banjir. Kekuatan kamera IR genggam merupakan fitur sangat praktis lainnya. Alat ini cocok untuk segala situasi, baik untuk proyek rumahan maupun penggunaan luar ruangan. Entah Anda sedang memeriksa rumah, memotret satwa liar di hutan, atau menjelajahi langit malam, desain portabelnya memudahkan Anda membawa kamera IR ke mana pun Anda pergi. Desain yang mudah dibawa ini cocok untuk semua orang, tanpa memandang usia maupun tingkat kemampuan teknis. Membuka kemungkinan kreativitas dengan kamera IR portabel sangatlah menarik. Alat ini memungkinkan Anda menjelajahi spektrum cahaya inframerah, menangkap gambar dengan nuansa eksotis dan penuh warna yang biasanya tidak terlihat oleh mata telanjang. Dengan kemampuan mengubah pengaturan dan menyesuaikan bidikan Anda, Anda dapat menghasilkan gambar yang lebih kreatif dan mengesankan yang benar-benar merekam momen tersebut. Baik Anda seorang fotografer atau hanya menyukai eksperimen, fotografi IR merupakan aktivitas yang sangat menyenangkan—efek yang bisa diciptakan memberi Anda perspektif yang sama sekali berbeda tentang dunia serta ruang luas untuk kreativitas dan kesenangan, jadi pastikan Anda MENIKMATI dan terus tekan tombol SHUTTER. Benar-benar terasa ajaib melihat dunia dengan cahaya yang sama sekali berbeda—dengan kamera IR genggam. Dengan perangkat ini, Anda dapat mengalami lingkungan sekitar secara baru, menemukan detail tersembunyi, dan mengungkap misteri yang mungkin sebelumnya terlewatkan. Seri Outdoor Explorer Apakah Anda tertarik mempelajari tumbuhan dan satwa liar, atau hanya ingin melihat lebih dekat dunia di sekitar, portal genggam ini menuju alam luar dan dunia mikroskopis menawarkan pandangan yang menarik! Perangkat cerdas kecil ini akan membangkitkan rasa penasaran anak-anak, merangsang imajinasi mereka, serta menginspirasi tumbuh kembang dan pembelajaran mereka. Kami menawarkan layanan kepada Departemen Pemadam Kebakaran dan Darurat, layanan keselamatan publik, tim pencarian dan penyelamatan perkotaan, serta angkatan bersenjata lainnya. Kamera IR genggam menyediakan peralatan mutakhir untuk memadamkan kebakaran, melakukan pencarian dan penyelamatan, serta bekerja di lingkungan berbahaya di berbagai industri. Kamera Termal untuk Pemadam Kebakaran: Perusahaan telah meneliti dan mengembangkan dua jenis kamera termal dengan tiga pilihan resolusi: 256x192, 384x288, dan 640x512. Kamera-kamera ini mampu mengukur suhu hingga 2000°C. Peralatan Pencarian dan Penyelamatan: Koleksi kami mencakup detektor kehidupan berbasis radar, radar 3D tembus dinding, pemantau stabilitas, sistem pemantau gerak, serta detektor gas. Kamera Termal Industri: LSJ menyediakan kamera termal yang tidak hanya digunakan untuk pemadam kebakaran, tetapi juga untuk inspeksi bangunan, perbaikan peralatan elektronik, deteksi kebocoran air, dan inspeksi sistem HVAC. Teropong Termal dan Teropong Penglihatan Malam: Teropong penglihatan malam kami ideal untuk visibilitas di malam hari dan sangat populer di kalangan pemburu. Teropong ini dapat dengan mudah dipasang pada senapan laras panjang. LSJ berkomitmen menyediakan peralatan pencitraan termal dan peralatan penyelamatan berkualitas tinggi guna memenuhi kebutuhan berbagai industri, sehingga meningkatkan keselamatan dan efektivitas pelanggan kami. LSJ menawarkan solusi paling andal dan canggih. Percayakan LSJ sebagai mitra utama Anda dalam pencarian dan penyelamatan perkotaan. LSJ adalah pemimpin pasar dalam pembuatan kamera IR genggam berkualitas tinggi yang memenuhi standar internasional.
Layanan Pra-Penjualan:
Kami siap membantu Anda sejak awal. Kami menyediakan konsultasi komprehensif untuk membantu Anda memahami kebutuhan spesifik Anda serta memberikan solusi yang disesuaikan. Kami juga menyediakan spesifikasi teknis dan demonstrasi produk guna membantu Anda membuat keputusan yang tepat.
Layanan Penjualan:
Kami menjamin seluruh proses penjualan berjalan lancar dan efisien. Kamera IR genggam kami yang andal, ditambah proses pengendalian kualitas ketat, menjamin Anda menerima produk tepat waktu dan dalam kondisi prima. Kami juga mendukung layanan pengiriman dari pintu ke pintu.
Layanan Purna-Jual:
Hubungan kami dengan Anda tidak berakhir begitu Anda menerima produk kami. Kami menyediakan berbagai layanan purna-jual, termasuk panduan instalasi, pelatihan pengguna, serta layanan perawatan. Kami memiliki tim layanan pelanggan khusus yang selalu siap membantu. Mereka akan menangani setiap kekhawatiran atau masalah yang Anda alami guna memastikan kepuasan Anda. Setelah Anda membeli peralatan dari LSJ, kami memberikan jaminan tiga tahun, serta layanan purna-jual khusus yang dapat Anda manfaatkan.
Ketika Anda memilih LSJ, Anda memilih kualitas, keandalan, dan dukungan tanpa tanding. Kami berharap dapat menjadi mitra Anda dalam operasi pencarian dan penyelamatan di perkotaan serta bagi petugas pemadam kebakaran. Di LSJ, kami sangat memahami pentingnya menyediakan produk berkualitas tinggi dan 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 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 semua 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 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 2013, LSJ telah mengembangkan manufaktur, pasokan, dan penjualan kamera pencarian dan penyelamatan berkinerja tinggi serta kamera inframerah genggam. LSJ telah memperoleh sertifikasi ISO9001, CE, dan ROHS. Selain itu, LSJ memegang lebih dari 30 paten. Sebagai perusahaan terkemuka, kami mampu berinvestasi besar-besaran di departemen riset dan desain kami. Pada 2024, LSJ berpartisipasi dalam empat pameran utama: INTERSEC di Dubai, Securika 2024, Defence Services Asia (DSA) ke-18, dan National Security Asia (NATSEC) ke-3 di Malaysia, serta NFPA di Amerika Serikat. Pada 2025, kami dijadwalkan menghadiri INTERSEC yang akan diselenggarakan di Dubai pada bulan Januari, tanggal 14–16. Di stan kami akan dipamerkan kamera pemadam kebakaran termal, peralatan pemantauan audio dan video, detektor gas, radar 3D, serta produk-produk lainnya. Silakan berkunjung ke stan kami. LSJ memiliki pengalaman lebih dari 11 tahun dalam manufaktur. Perusahaan ini mengkhususkan diri dalam merancang dan membangun produk baru berdasarkan skenario penggunaan pelanggan. LSJ juga terus-menerus meningkatkan fungsionalitas serta menekan biaya produk. LSJ juga memiliki pengalaman luas dalam operasi penyelamatan dan pencarian di perkotaan. Sebagai contoh, dalam gempa bumi Turki 2023, radar detektor kehidupan LSJ menjadi komponen kunci dalam upaya penyelamatan Tim Penyelamat Langit Biru Tiongkok. Pilih LSJ untuk solusi kelas atas dan andal yang disesuaikan dengan kebutuhan Anda. Hak Cipta © Beijing LSJ Technology Development Co., Ltd. All Rights Reserved
-
Kebijakan Privasi
kamera ir genggam
Bagaimana kamera IR genggam mengungkapkan detail tersembunyi

Bersifat serbaguna dari kamera IR genggam

Membuka kreativitas dengan kamera IR genggam

Melihat dunia dengan cahaya yang sama sekali baru melalui kamera IR genggam
Why choose LSJ Technology kamera ir genggam?
Suplai Peralatan Pencarian dan Penyelamatan Perkotaan yang Lengkap
Mengapa LSJ Bisa Menjadi Produsen dan Pemasok Primer Anda?
Menjamin Kualitas dan Pengiriman Tepat Waktu: Komitmen LSJ terhadap Kepuasan Pelanggan
Inovasi dalam Pabrik Alat Pencarian dan Penyelamatan Bertingkat Tinggi
Kategori produk terkait
Tidak menemukan yang Anda cari?
Minta Penawaran Sekarang
Hubungi konsultan kami untuk produk lainnya yang tersedia.Hubungi Kami