sunt quidem instrumenta perquam mirabilia, quae nobis hominibus permittunt videre res...">
,需要通过父级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);
}
});
})();
Camarae thermicae sinicae tuba visionis nocturnae sunt opuscula vere pulchra quae nobis hominibus permittere videntur res quae nimis calidae vel nimis frigidae sunt propter oculos nostros. Camarae, quae a LSJ Technology conficiuntur, magis populares fiunt partim quia mirabilia facere possunt. Sed hi cameras calorem quaerunt optima nocticula specula fuci in aliquid quod infra rubrum technologia nominatur. Technologia est ingeniosa et permitit camaris facere imagines per calorem differentias sentiendas. Camarae possunt nobis permittere 'videre' quam calida aut frigida res sint per colores diversos utentes — velut magia. Camarae thermicae sinicae nocturnae visionis tubi ad hastas In Usu Feruntur Per Orbem. Homines incipiunt intellegere quam utiles sint, in variis contextibus. LSJ Technology iam diu in negotiis versatur et his in rebus qualitate aedificii et durabilitate non cedit. Sinensis Thermica Imago Camarae Per Totum Mundum Dispersae Sunt. Homines incipiunt intelligere quam utilis sint in variis contextibus. LSJ Technologia iamdiu negotium habuit et haec non sunt infirma quando de qualitate structurae et durabilitate agitur. Ad multas professiones applicari potest, ubi camera facit laborem faciliorem et tutiorem. Operarii aedificiorum, exempli gratia, eos adhibere possunt ut effusiones in aedificiis traciant aut ut cernant an nervi rupti sint. Agricolae etiam eis confidere possunt ut sanitatem frugum et animalium suorum monent. Cum tam multae applicationes sint, non mirum est quod camarae thermicas sinicae cito fiant instrumenta necessaria multorum. Servimus Departimentis Ignis et Profectionis, Servitiis Publicae Salutis, urbanae equipites profectionis et aliarum militarium. LSJ praebet apparatus ultimam ad incendia opprimenda, peragendum investigandum et profectionem, et operanda in locis periculosis per varias industrias. Thermicae Camarae Exstinguendorum. Creavimus et studuimus duas species thermicarum camerarum quae tres diversas resolutiones habent. Possunt monitores temperaturas usque ad 2000 gradus Celsius. Investigandum et Profectio Instrumenta: In inventario nostro continentur radar vitae detector, Sinensis thermica imago camera per parietes, stabilitas monitor, motus monitoring system, necnon gas detector. Industriales Thermicae Camarae. LSJ habet thermicas camerarum quae non solum ad exstinguenda ignis utuntur, sed etiam ad inspectionem aedificiorum, electronicas reparaciones, aquae detectionem tamquam inspectionem systematis HVAC. Thermica Scopae Nocturnae Visionis Scopae: Nocturnae visionis scopae nostrae perfectae sunt ad visibilitatem nocturnam et apud venatores populares sunt. Facillime ad fusos accommodantur. LSJ offert altam qualitatem thermicae profectio et imaging instrumenta quae possunt satisfacere necessitatibus diversarum industriae et incrementum efficentiae et salubritatis praebere. LSJ est securissima et innovativa solutiones. Certe confide in LSJ ut principalem socium tuum in investigatione et operatione profectionis urbanarum. Ex anno 2013 LSJ fabricare, suppeditare et vendere incipit peritos apparatus quaerendi et salvandi atque thermographicas camaras Sinicas. LSJ certificata est pro ISO9001, CE et ROHS. Praeterea plus quam triginta patentia possidet. Ut praecipua societas, magnopere in nostrum departmentum investigationis et designi investire possumus. Anno 2024 LSJ quattuor magnis exhibitionibus interfuit: INTERSEC apud Dubaī, Securika 2024, octodecima Defensionis Servitiorum Asiae (DSA), tertia Nationalis Securitatis Asiae (NATSEC) in Maleisio, et NFPA in Civitatibus Foederatis Americae. Anno 2025 INTERSEC in Dubaī mense Ianuario, a die XIV usque ad XVI, frequentabimus. In nostro tabernaculo camarae thermicae ad incendia opprimenda, item apparatus monitorii auditus et visus, detectores gasorum, radar tridimensionalis, atque alia producta exhibebuntur. Venite ad tabernaculum nostrum. LSJ plus quam undecim annos in fabricando operam dat. Specialiter novos apparatus ex usu clientium condere et construere solent. Praeterea functiones continuo emendant et pretia productorum minuunt. LSJ etiam longa experientia in urbane salute et quaerendo pollens est. Exempli gratia, in terrae motu Turciae anni 2023 radar detector vitae LSJ elementum clavem fuit in conatibus auxilii a Chinese Blue Sky Rescue Team. Elige LSJ pro solutionibus summi generis, fideli, ad tuas necessitates aptatis. Apud LSJ scimus magni momenti esse altae qualitatis producta et egregiam clientium curam praebere. Ideo garantias unius aut quinque annorum offerimus. Haec garantia nostra fiduciam ostendit in diuturnitatem et functionem nostrorum productorum. Magna nostra inquisitionis et evolutionis investitio certam facit summam qualitatem eorum, quae emis. Ut fabricator, strictissimas habemus qualitatis custodiae regulas, quae a materia prima incipiunt et in productione desinunt. Sive privatus es, sive distributor, sive particeps licitationis, sive etiam entitas publica, varia productorum genera habemus, quae ad tuas necessitates respondent. Camerae thermographicae Sinicae LSJ, componentes, materiae primae et alia producta abundanter sunt, ut prompta expeditio certa sit. Si intra tempus specificatum merces expedire non possumus, 2% ad 5% summae ordinis tui tibi restituemus. Ut te ad efficiens productorum nostrorum usum adiuverimus, instructionum videos per omnia explicatos praebemus. Etiam technicam instructionem in loco, ad tuas necessitates accommodatam, disponere possumus, ut confidenter et facile producta nostra uti valeas. Elige LSJ pro productis altae qualitatis et fidelibus, atque pro egregia clientium cura. Apud LSJ periti sumus in developmente praestantissimi apparatus pro urbane quaerendo et salvando, qui ad summas normas internationales conficiuntur.
Servitium ante Venditionem:
Adiuvare vos ab initio volumus. Consultationes amplas praebemus, ut vestra desideria cognoscamus et solutiones elaboraremus. Praeterea camaras thermographicas Sinicas, producta et specificata technica minuta praebemus, ut omnia necessaria ad bene informandam decisionem vestram habeatis.
Servitium Venditionis:
In ipso venditionis processu experientiam vobis lenem et efficacem praestabimus. Tempore et integritate mercium vestrarum certiores facimus, gratias agentes systemati ordinum efficaci et severo controllo qualitatis. Etiam delivertionem ad ostium ad ostium subministramus.
Servitium post Venditionem:
Relatio nostra vobiscum non finitur, cum iam merces nostras acceperitis. Amplum servitium post venditionem includit auxilium in installatione, educationem utentium et curam. Adest nobis turma subsidii clientium, quae 24 horas in die parata est, ut quascumque dubitationes vel difficultates resolvat et vestram satisfactionem garantiat. Triennalem garantiam in omnibus apparatus a LSJ emptis praebemus. Etiam servitia post venditionem ab nobis accipere poteritis.
Electio LSJ significat electionem fiduciae, altissimae qualitatis, praestantissimae qualitatis et auxilii incomparabilis. Exspectamus ut socii vestri simus in urbane quaerendo et salvando, atque in incendiis extinguendis. Copyright © Beijing LSJ Technology Development Co., Ltd. Omnia Jura Servata
-
Politia Privati
Camera thermica sinensis
Technologia avansata din spatele camerelor chineze de imaginare termică

Îmbunătățirea siguranței și securității cu ajutorul camerelor chineze de imaginare termică

Răsăritul camerelor chineze de imaginare termică pe piața globală

Debloarea potențialului camerelor chineze de imaginare termică în diverse industrii
Why choose LSJ Technology Camera thermica sinensis?
Supplēs Catēnās Ōmnibus Instrumentīs ad Servandōs et Recuperandōs in Urbānā Rēgīōne
Innovando Fabricam Tectumentorum Prope Quaestionem Et Salutem Cum Alta Efficiencia
Qualitatem et Punctualitatem Consecutionis Tutamen: LSJ's Devotio ad Placitum Clientium
Cur LSJ Potest Esse Tuus Fabricator et Suppeditator Primatorum?
Categories Producti Relatae
Non invenis quod quaeris?
Petere Citatio Nunc
Consulere nostros pro magis productis disponibilibus.Cum Nobis Contacata