dispositivos de detecção de explosivos. Tais detectores podem ser encontrados em aero...">
,需要通过父级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);
}
});
})();
Detectores de traços explosivos farejam o ar usando dispositivos especiais para procurar as menores partículas de dispositivos de detecção de explosivos . Tais detectores podem ser encontrados em aeroportos e outros lugares para garantir a segurança das pessoas. Quando alguém passa por um ponto de controle de segurança, o detector de traços explosivos, por exemplo, pode verificar rapidamente se a pessoa está carregando algo perigoso. Isso é feito para manter todos seguros e garantir que substâncias perigosas não sejam levadas para áreas seguras. A tecnologia inteligente é o que é empregado na detecção de traços de explosivos para procurar pequenas partículas de material explosivo. Esses detectores podem identificar até mesmo um traço de resíduo explosivo, permitindo que agentes de segurança detectem facilmente quaisquer ameaças potenciais. Detectores de traços explosivos proporcionam segurança e ajudam a prevenir situações adversas usando tecnologia de ponta. Os detectores de traços possuem várias capacidades que os tornam cruciais para avaliações e verificações de segurança. Os detectores podem rapidamente identificar vários tipos de equipamento de detecção de explosivos e ajudar o pessoal de segurança a delimitar o potencial perigo. Além disso, os detectores de traços de explosivos são fáceis de usar e podem gerar resultados em segundos. Isso os torna assistentes de segurança muito práticos para trabalhadores de segurança que precisam verificar muitas pessoas e coisas rapidamente. Oferecendo segurança para ambientes ou residências e prevenindo condições perigosas, os detectores de traços de explosivos são realmente importantes em exames de segurança. Esses detectores são implantados em aeroportos, estações de trem e outras instalações seguras para garantir que nenhum explosivo entre nessas áreas. Com detectores de traços de explosivos, o pessoal de segurança pode localizar rapidamente quaisquer ameaças potenciais e agir para garantir que todos estejam seguros. Espera-se que o futuro da tecnologia de detecção de traços de explosivos seja promissor à medida que a tecnologia melhora. Avanços recentes no controle de segurança trouxeram maneiras cada vez mais rápidas e precisas de ajudar os oficiais a encontrar explosivos. Produtos materiais. Com o tempo, esperamos que os detectores de traços explosivos continuem a se tornar melhores, mais fortes e mais eficientes do que nunca. Essas novas tecnologias protegerão as pessoas e garantirão que os controles de segurança sejam eficazes. Detector de traços explosivos da LSJ: entendemos a importância de oferecer aos nossos clientes produtos de alta qualidade e um serviço superior. É por isso que oferecemos garantias de um ano ou cinco anos, refletindo nossa confiança na durabilidade e no desempenho dos nossos produtos. Comprometemo-nos com pesquisa e desenvolvimento para garantir que nossos produtos atendam aos mais elevados padrões. Como fabricante, mantemos um rigoroso controle de qualidade desde a seleção das matérias-primas até a produção. Seja você um comprador individual, distribuidor, participante de licitação ou mesmo uma entidade governamental, dispomos de uma ampla variedade de produtos que atendem às suas necessidades. Além disso, mantemos um estoque robusto de matérias-primas e outros componentes para assegurar a entrega pontual de todos os pedidos. Caso não efetuemos a entrega no prazo combinado, reembolsaremos entre 2% e 5% do valor da compra aos nossos clientes. Para ajudá-lo a utilizar nossos produtos de forma eficiente e extrair o máximo de seu potencial, oferecemos vídeos tutoriais detalhados. Adicionalmente, podemos organizar a presença de nossa equipe técnica no local para treinamento personalizado, conforme suas necessidades, garantindo que você consiga operar nossos produtos com confiança e facilidade. Escolha a LSJ e desfrute de produtos de alta qualidade, robustos e de um atendimento ao cliente excepcional. Desde 2013, a LSJ desenvolve, fornece e comercializa detectores de traços explosivos e equipamentos de busca e salvamento de alto desempenho. A LSJ obteve certificações ISO 9001, CE e RoHS. Além disso, detém mais de 30 patentes. Como empresa líder, temos capacidade para investir significativamente em nosso departamento de pesquisa e desenvolvimento. Em 2024, a LSJ participou de quatro grandes feiras: a INTERSEC, em Dubai; a Securika 2024; a 18ª Defence Services Asia (DSA) e a 3ª National Security Asia (NATSEC), na Malásia; e a NFPA, nos Estados Unidos. Em 2025, está prevista nossa participação na INTERSEC, que ocorrerá em Dubai, em janeiro, entre os dias 14 e 16. O estande apresentará nossas câmeras térmicas para combate a incêndios, bem como equipamentos de monitoramento de áudio e vídeo, detecção de gases, radar 3D e outros produtos. Visite nosso estande. A LSJ possui mais de 11 anos de experiência na fabricação desses equipamentos. Especializa-se no projeto e construção de novos produtos com base nos cenários de uso dos clientes. Além disso, atualiza continuamente as funcionalidades e reduz os custos dos produtos. A LSJ também possui ampla experiência em resgate urbano e busca. Por exemplo, durante o terremoto da Turquia em 2023, o radar detector de vida da LSJ foi um elemento-chave nos esforços de resgate realizados pela Equipe Chinesa de Resgate Céu Azul. Escolha a LSJ para soluções sofisticadas e confiáveis, personalizadas conforme suas necessidades. Oferecemos serviços a departamentos de incêndio e emergência, serviços de segurança pública, equipes urbanas de busca e salvamento, bem como a diversos exércitos. A LSJ fornece equipamentos de ponta para combate a incêndios, execução de operações de busca e salvamento e trabalho em ambientes com risco de explosão em diversos setores. Câmeras térmicas para combate a incêndios. Desenvolvemos e testamos dois tipos de câmera térmica com três opções diferentes de resolução. Essas câmeras podem medir temperaturas que atingem até [valor ausente no original]. Detector de traços explosivos. Equipamentos para busca e salvamento: Nossa linha inclui detectores de vida por radar, radar 3D através de paredes, monitores de estabilidade, sistemas de monitoramento de movimento, bem como detectores de gás. Câmeras térmicas industriais. Além das câmeras térmicas utilizadas no combate a incêndios, a LSJ oferece câmeras térmicas portáteis para detecção de vazamentos em construções hidráulicas, reparo eletrônico, perda de calor em pisos aquecidos e inspeção de sistemas HVAC. Miras térmicas. As miras de visão noturna são ideais para visibilidade noturna e são muito apreciadas por caçadores. São facilmente acopláveis a rifles. A LSJ compromete-se a fornecer equipamentos de imagem térmica e de resgate de alta qualidade, atendendo aos requisitos de diversos setores e melhorando a segurança e a eficácia de nossos clientes. A LSJ oferece as soluções mais seguras e modernas. Confie na LSJ como seu principal parceiro em operações urbanas de busca e salvamento. O detector de traços explosivos é líder de mercado no desenvolvimento de equipamentos de alta qualidade para busca e salvamento urbano que atendem às normas internacionais. Serviço Pré-Venda: Estamos aqui para ajudá-lo desde o início. Oferecemos consultorias abrangentes para auxiliá-lo a compreender suas necessidades específicas e fornecemos soluções personalizadas. Também disponibilizamos especificações técnicas, bem como demonstrações de produtos, para ajudá-lo a tomar uma decisão informada. Serviço de Vendas: Garantimos que todo o processo de venda seja contínuo e eficiente. Asseguramos a entrega pontual e em perfeitas condições dos seus produtos, graças ao nosso sistema de pedidos otimizado e a um rigoroso controle de qualidade. Também oferecemos entrega porta a porta. Serviço Pós-Venda: Após o recebimento do seu produto, nosso relacionamento com você não termina. Prestamos amplo suporte pós-venda, incluindo orientações para instalação, treinamento do usuário e serviços de manutenção. Nossa equipe de atendimento ao cliente está sempre disponível para resolver quaisquer problemas ou dúvidas que possam surgir, garantindo sua total satisfação. Ao adquirir equipamentos da LSJ, você receberá garantia de três anos. Além disso, terá suporte pós-venda específico por parte da nossa empresa. Escolher a LSJ significa escolher confiança, qualidade e suporte incomparável. Estamos entusiasmados em ser seu parceiro nas áreas de busca e salvamento urbano ou bombeiros. Direitos Autorais © Beijing LSJ Technology Development Co., Ltd. Todos os Direitos Reservados
-
Política de Privacidade
Detector de traços explosivos
A tecnologia por trás da detecção de traços de explosivos.

Uma visão interna das capacidades dos detectores de traços de explosivos.

O papel vital dos detectores de traços de explosivos na triagem de segurança.

Explorando o futuro da tecnologia de detecção de traços de explosivos.
Why choose LSJ Technology Detector de traços explosivos?
Garantindo Qualidade e Entrega Pontual: Compromisso da LSJ com a Satisfação do Cliente
Inovando na Fabricação de Equipamentos de Busca e Resgate de Alto Desempenho
Um Guia Completo de Equipamentos de Busca e Resgate em Áreas Urbanas e Cadeias de Fornecimento de Equipamentos
Por que a LSJ Pode Ser Sua Fabricante e Fornecedora de Primer?
Categorias de produtos relacionados
Não encontrou o que procura?
Solicite uma cotação agora
Entre em contato com nossos consultores para obter mais produtos disponíveis.Entre em Contato