na tumutulong na maprotektahan tayo laban sa mga bagay na maaaring bumoto. Teknolohiya i...">
,需要通过父级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);
}
});
})();
Tahanan /
Ang mga makina para sa deteksyon ng blast ay scope ng baril para sa paningin sa gabi na tumutulong protektahan kami laban sa mga bagay na maaaring magboom. Ang teknolohiya ay gumagawa ng ilang ng pinakamahusay na mga kagamitan para sa deteksyon ng eksplosibong. Ang kompanya ay gumagamit ng thermal imaging camera para sa android siguradong maaaring lubos ang kanilang eksplosibong detektor. Maaaring makita ng mga makinaryang ito ang isang malawak na hilera ng mga eksplosibo, mula sa likido hanggang sa bubog, napakabilis at tunay na maikli. Kaya nito ang night vision scopes for rifles na kritikal sa seguridad ng mga lugar tulad ng paliparan, estasyon ng tren, at iba pang pampublikong lugar. Tinuturingan nila ang mga bag at ari-arian ng mga tao, at sila ang tumutulong upang pigilan ang masasamang mga pangyayari. Ang mga detector ng pampasabog ay gumagampan tulad ng mga superhero na tahimik na nagpoprotekta sa atin. Salamat sa mga scope ng baril para sa paningin sa gabi mga makinang ito, ang mga grupo sa seguridad ay mabilis na makakasunod at papatayin ang anumang panganib bago ito maging malaking problema. Ito ay dahil sa paggamit ng mga ekipong pangdeteksyon ng eksplosibo na mayroong malaking kontribusyon sa pagpapabuti ng mga sistema ng seguridad sa buong mundo. Sa LSJ, kinikilala namin kung gaano kadahilanang mahalaga ang magbigay ng mga produktong may kalidad at napakataas na serbisyo sa aming mga customer. Nag-aalok kami ng mga warranty para sa isang o higit pang device para sa pagkilos ng eksplosibong material upang ipakita ang aming tiwala sa katatagang husto at pagganap ng aming mga produkto. Ang aming malaking puhunan sa pananaliksik at pag-unlad ay nagiging siguradong makukuha ninyo ang mga produkto na sumusunod sa pinakamataas na pamantayan. Bilang kompanyang nagmamanufacture, sumusunod kami sa mabuting kontrol sa kalidad mula sa mga row materials hanggang sa final na produksyon. Nag-aalok kami ng malawak na seleksyon ng mga produkto na maaaring tugunan ang mga pangangailangan ng lahat ng gumagamit. Mayroon din kaming komprehensibong inventory ng mga parte at row materials upang siguraduhin ang maagang pagpapadala ng bawat order. Kung hindi namin tapos ang pagpapadala ng oras, kinikomitmen namin na ibalik ang 2-5 porsiyento ng halaga ng order sa aming mga cliente. Upang tulungan kayo na gamitin natin ang aming mga produkto nang epektibo, nagbibigay kami ng komprehensibong mga video ng pagtuturo. Maaari naming i-arrange din ang mga klase ng teknikal sa lugar, na custom-made batay sa inyong mga espesipikong pangangailangan, upang siguraduhin na kaya ninyong gamitin ang aming mga produkto ng may tiwala at kumport. Pumili ng LSJ para sa mataas na kalidad, maaasahang mga produkto at napakataas na serbisyo sa customer. Sa LSJ, maraming eksperto kami sa paggawa ng pinakamahusay na kagamitan para sa urban search and rescue na disenyo upang tugunan ang pinakamataas na internasyonal na pamantayan. Serbisyo Bago ang Pagbenta: Naroroon kami upang tulungan ka simula pa sa unang hakbang. Nagbibigay kami ng komprehensibong konsultasyon para malaman namin ang iyong mga pangangailangan at magbigay ng solusyon. Nagbibigay din kami ng mga demo ng produkto kasama ang detalyadong teknikal na especificasyon para mayroon kang lahat ng kinakailangang impormasyon para sa isang maingat na desisyon. Serbisyo Sa Oras ng Pagbenta: Habang nagaganap ang proseso ng pagbebenta, siguradong mayroong Explosive detection devices at epektibong karanasan. Siguraduhin namin na dumadating ang mga produktong binili mo nang maaga at nasa makabubuting katayuan dahil sa aming automatikong sistema ng order at matalinghagang kontrol sa kalidad. Suporta din namin ang door-to-door delivery. Serbisyo Matapos ang Pagbenta: Matapos mong tanggapin ang mga produkto, hindi pumuputol ang aming relasyon sa iyo. Kasama sa aming pampalawak na serbisyo matapos ang pagbenta ay suporta para sa pag-install, pagsasanay sa gumagamit at maintenance. Laging handa ang aming departamento ng serbisyo sa pelikula upang suriin ang anumang tanong o bahala na mayroon kang, upang mapanatili ang iyong kabuuan ng kapansin-pansin. Kapag bumili ka ng kagamitan mula sa LSJ, ibibigay namin ang tatlong taong warranty, maaari mong makakuha ng tiyak na serbisyo matapos ang pagbenta mula sa amin. Ang pagnanais ng LSJ ay pumili ng tiwala, kalidad, at walang katulad na suporta. Nakikitaan naming maging partner mo sa urban search and rescue pati na rin sa firefighter. Mula noong 2013, ang LSJ ay nag-uunlad sa paggawa, pagprodyus, at pagsasampa ng mataas na katanyagan na kagamitan para sa pagsagot at pagliligtas, pati na rin ang kagamitan para sa mga bumbero. Dinala na ang LSJ ng sertipikasyon para sa ISO9001, CE at mga kagamitan para sa deteksyon ng eksplosibo. Sa dagdag pa, may higit sa 30 patent ang kinakampanya nito. Bilang isang unang pang-eksperto sa negosyo, maaari naming malaking mag-inwesta sa aming departamento ng disenyo at pagsisiyasat. Noong 2024, sumali ang LSJ sa apat na pangunahing kaganapan: INTERSEC, Securika, ika-18 Defence Services Asia at ika-3 Pambansang Seguridad Asia sa Malaysia at NFPA sa Estados Unidos. Nakarehistro din kami para sa INTERSEC sa Dubai mula Enero 14-16, 2025. Ipatutungga namin ang aming radar na detektor ng buhay, isang 3D radar na maaaring makita sa pamamagitan ng mga pader, detector ng gas, audio at video na kagamitan ng pagtingin, pati na rin ang kagamitan ng pagmonitero ng kakaibahan at termal na kamera para sa paglaban sa sunog. Inuulit namin na dumalo kayo sa aming booth. May higit sa 11 taong karunungan ang LSJ sa paggawa. Nakapokus sila sa disenyo at pagtatayo ng mga mapaghangad na produkto batay sa sitwasyon ng paggamit ng mga cliente. Patuloy din nilang sinusunod ang pagpapabuti ng mga tampok at pagbaba ng gastos para sa mga produkto. May malawak ding karanasan ang LSJ sa larangan ng urban search and rescue. Halimbawa, noong lindol sa Turkey noong 2023, ang radio life detector ng LSJ ay isang pangunahing elemento sa mga pagsisikap sa pagliligtas ng Tsino Blue Sky Rescue Team.Pumili ng LSJ para sa pinakamataas na teknolohiya at handa na solusyon na ipinapasok para sa iyong mga pangangailangan. Nagbibigay kami ng suporta sa mga departamento ng Fire and Rescue bilang karagdagan sa mga serbisyo ng Public Safety at mga grupo ng urban search and rescue. Nag-aalok ang LSJ ng kagamitan na makabago para sa Explosive detection devices, pagganap ng search and rescue, at pagtrabaho sa mga peligrosong lugar sa iba't ibang industriya.Firefighting Thermal Cameras: Pinag-aralan at inilimbag namin dalawang uri ng thermal cameras. Dumarating ito kasama ang tatlong opsyon sa resolusyon: 256x192, 384x288 at 640x512. Maaaring sukatin ng mga kamera na ito ang temperatura hanggang sa 2000 degrees Celsius.Search and Rescue Equipment: Nag-aalok kami ng malawak na pilihan ng produkto na kabilang ang mga stabilisasyon monitor, gas detector at movement monitoring systems.Industrial Thermal Cameras: Kasama sa thermal cameras para sa firefighting, nag-aalok din ang LSJ ng handheld thermal cameras upang detektorin ang leaks sa tubig at building inspections, pati na rin ang elektронiko repair, underfloor heating loss at HVAC inspection ng HVAC systems.Thermal Scopes Night Vision Scopes ay maaaring gamitin sa night vision noong gabi, at marami sa mga mangangaso ang nagpapabora nito. Maaari itong ilagay sa mga baril.Matatagpuan ang LSJ na nakakuha ng komitment na magbigay ng mataas na kalidad ng thermal imaging at rescue equipment upang tugunan ang mga pangangailangan ng iba't ibang industriya, dumadagdag sa seguridad at epekibo. Nag-aalok ang LSJ ng pinakasekretong at pinakabago na solusyon.Maaaring tiyakin ang LSJ bilang iyong pangunahing partner sa larangan ng urban search and rescue. Copyright © Beijing LSJ Technology Development Co., Ltd. Lahat ng mga Karapatan Ay Nakikilala
-
Patakaran sa Pagkapribado
Mga Dispositibong Para Sa Deteksyon Ng Eksplosibong Materyales
Ang Teknolohiya Sa Kabalikat Ng Mga Dispositibo Para Sa Deteksyon Ng Eksplosibong Materyales
Pagpapalakas Ng Seguridad Sa Pamamagitan Ng Mga Dispositibong Para Sa Deteksyon Ng Eksplosibong Materyales
Kung Paano Nag-iingat Sa Amin Ang Mga Dispositibong Para Sa Deteksyon Ng Eksplosibong Materyales
Pag-uusap Sa Pagkakaapekto Ng Mga Dispositibong Para Sa Deteksyon Ng Eksplosibong Materyales Sa Mga Sistema Ng Seguridad
Why choose LSJ Technology Mga Dispositibong Para Sa Deteksyon Ng Eksplosibong Materyales?
Pagpapatibay ng Kalidad at Kaugnay na Pagpapadala: Ang Paggawa ng LSJ para sa Kagustuhan ng Mga Kliyente
Bakit maaaring maging tagapaggawa at tagasupply ng primer ang LSJ?
Pag-uunlad ng High-Performance Search and Rescue Equipment Manufacturer
Isang Kompleto na Ekipamento para sa Urban Search at Rescue Supply Chains
Mga kaugnay na kategorya ng produkto
Hindi makahanap ng hinahanap?
Humiling ng Quote Ngayon
Makipag-ugnay sa aming mga konsultant para sa iba pang mga produkto.Makipag-ugnayan