sunt instrumenta mirabilia quae nobis permittunt videre res quae aut calidae aut frigidae sunt nimis ut oculis nostris percipi possint. Haec instrumenta specialia radiationem infrarubram utuntur...">
,需要通过父级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);
}
});
})();
Handheld infrared imagines thermicae sunt instrumenta pulchra quae nobis permittunt videre res quae aut nimis calidae aut frigidae sunt ut oculi nostri eas cernant. Hi speciales apparatus radiationem infrarubram ad imaginem generandam utuntur quae depict temperaturas varias in rebus vel locis. Fabricator LSJ iam nunc effecit aliqua mirifica manubria infrarubra imagines thermicae tam pro pueris quam pro adultis. Haec instrumenta compaginata et levia sunt, quae multam curiositatem et gaudium relinquit ut mundum discas et cognoscas. Cum LSJ Technology IR-980 manubrio thermico infrarubro, possumus cognoscere ubi istae pertinaces effusiones caloris fiunt, videre ubi calor domi effugit, et si vere scire volumus, sequi animalia domestica per signaturas caloris eorum! Sunt tam multi praeponuntur ad usum manubrii thermici infrarubri LSJ Technology. Ipsi nos tutos custodire possunt admonendo de periculis ut apparatus ardentis, vel difficultatibus electricis. Etiam nummos servare possunt, quia indicant ubi domus nostra calorem amittit. Et ludicra sunt praeterea! Possumus esse exploratores, quaerentes mysteria in hortis nostris, aut astronautae qui planetas temperie extrema explorent. Cum elegeris optimum imaginatorem thermalem infrarubrum manu portabilem, considera quemadmodum id praecipue usurus sis. Si aliquid pro aventuris foris quaeris, quaere aliquid cum longo intervallo et displaye alta visibilitate pro inquisitis animalibus silvestribus. Si prioritates tuae sunt salus domus atque etiam conservatione energiae, quaere modello cum simplificatis functionibus ut sunt monitores de temperatura et custodia datorum. Sunt nimis multi diversi imaginatores thermali infrarubri manu portabiles in mercato ut optimes optimum tibi. Adhibe optimē tuum LSJ Technology Handheld Infrared Thermal Imager cum his uti facilis consiliis. Cognosce quomodo opus appareat et eius controlla, ut per menu et configurationes in schermate facile progredi possis. Nunc tenta ipsum movere ut videas quomodo lectio de temperatura in schermate mutet. Et ne obliviscaris lentem tergere ut claras et distinctas lectiones habeas. Denique, delectare in experimentis et explorationibus cum tuo manu portabili infrarubro thermali imager – numquam scis quando aliquid mirabilem reperies! Servimus Departamenta Incendiorum et Salutis Publicae, Servitia Tutelae Publicae, Urbanas Aequipes Quaerendi et Salvandi, ac alias exercitus. LSJ praebet apparatus novissimos ad incendia opprimenda, ad quaerendum et salvandum agendum, et ad operandum in locis periculosis per varias artes. Cameræ Thermographicae ad Exstinguendos Incendios. Duas cameras thermographicas creavimus et studuimus, quae tres habent resolutiones diversas. Possunt temperaturas usque ad 2000 gradus Celsius monitorare. Apparatus Quaerendi et Salvandi: Nostra series includit detectores vitæ per radium, imagines infrarubras manuales per parietes, monitora stabilitatis, systemata monitoris motus, ac detectores gasorum. Cameræ Thermographicae Industriales: LSJ cameram thermographicam habet, quae non solum ad exstinguendos incendios utitur, sed etiam ad inspectionem aedificiorum, emendationes electronicas, detectionem percolationum aquae, ac inspectionem systematum HVAC. Scopī Thermographici et Scopī Visionis Nocturnae: Nostri scopī visionis nocturnae sunt perfecti ad visibilitatem nocturnam et apud venatores populares. Facile ad arquebuses aptantur. LSJ praebet apparatus thermographicos et imaginum altissimae qualitatis ad rescuendum, qui variarum artium necessitates explent et efficaciam ac tutelam augent. LSJ est securissima et innovativissima solutio. Confide LSJ ut principalem tuum socium in operationibus quaerendi et salvandi in urbibus. Ex quo anno 2013, domus LSJ fabricandis, proedendis et suppetendis instrumentis altiorem perficientibus ad quaerendum atque servandum necnon ad extingueundum incendium incumbit. Domui LSJ certificata sunt ISO9001, CE et Imprimis Infrarubrae Visionis Instrumentum manuale; praeterea plus quam triginta patentes obtinet. Profecto quod princeps mercatura sumus, in discentionem nostram atque in studium multum pecuniae conferre possumus. Anno 2024, domus LSJ in quattuor maioribus conventibus interfuit: INTERSEC, Securika, 18ma Asiae Miltiae Ministerii Asiae Nationalisque Tutelae III et NFPA in America Septentrionali. Etiam registramur INTERSEC Dubaiae a diebus XIV-XVI Ianuarii 2025. Ostendemus vos delectorem vitalem radaricum, radar tridimensionale quod per parietes videre potest, delectorem gasorum, instrumenta auditus et visus ac deinceps stabilitatis custodia et camaras thermicas ad extinguenda incendia. Venite ad tabernaculum nostrum! Domus LSJ ultra undecim annos expertae manufacturae habet. In condendis et struendis rebus novis ex usu clientium versatur. Praeterea, emendationes rerum et minuendos sumptus saepius promovet. Domus LSJ etiam longa experientia in urbis quaerendi et salvandi genere gaudet. Exempli gratia, anno 2023 Turciae terrae motu, radio vitis detector LSJ elementum clavis erat in opera succurrendi Sinici Caeli Caerulei Grex. Elige LSJ pro solutionibus antesignanis et tutis tuis necessitatibus accommodatis. Imaginifer termicus infrarubens manu tenendus est dux in mercato ad evolvendum praestantissima instrumenta ad quaerendum et salvandum in urbibus, quae normas internationales implent. Servitium ante venditionem: Adsumus ut tibi assistamus ab initio. Praebemus consultationes expletas ut tibi opem feramus intellegendis propriis necessitatibus et solutiones ad mensuram offeramus. Praebemus specificata technica simul ac demonstrationes productorum ut tibi adiuvemus facere decisionem informatam. Servitium venditionis: Curamus ut totus processus venditionis sit sine interruptione et efficax. Garantimus ut tua producta tempore et in condicione perfecta adveniant, gratias agimus systemati ordinum expedito et rigidae inspectioni qualitatis. Etiam praebemus distributionem a ianua ad ianuam. Servitium post venditionem: Postquam productum accepisti, relatio nostra tecum non desinit. Praebemus auxilium post venditionem latissimum, quod consilia de installatione, educationem usoris et servitia de conservatione includit. Turma nostra de servitio clientium semper parata est ut quascumque difficultates vel curas resolvat quas habere potes, ut certi simus te omnino esse contentum. Postquam emis instrumenta a LSJ, triennalem praebemus garandiam. Auxilium speciale post venditionem a nobis accipies. Eligere LSJ est eligere fiduciam, qualitatem et auxilium quod nullo modo aequatur. Gaudemus ut socii vestri simus in quaerendo et salvando in urbibus aut in incendiis extinguendis. Nos apud LSJ scimus quam magni momenti sit ut clientibus nostris praestemus tam bona qualitate producta quam servitium egregium. Garantiam unius aut quinque annorum praebemus, ut fiduciam nostram in durabilitate ac functione productorum nostrorum ostendamus. Nos sumus fabricantes instrumentorum thermographicorum infrarubrorum manuum, qui in studia et ad perfectionem technicam incumbunt, ut producta nostra altissimis normis satisfaciant. Ut fabricatores, processus severos de controllo qualitatis ab materia prima usque ad productionem finalem servamus. Varietatem productorum praebemus, quae omnium necessitatibus satisfacient. Copia nostra materiae primae, componentium aliorumque productorum sufficit ut prompta distributio garantur. Si non possumus ordinem tuum eo tempore adimplere quo petisti, usque ad 5 % valoris ordinis tui tibi restituemus. Ut tibi opem feramus ut producta nostra optime utaris, videos didacticos perpulchros praebemus. Praeterea, nostros tecnicos ad locum mittimus ut instructionem in situ, ad tuas necessitates speciatim compositam, praestent, ut confidenter et facile producta nostra uti possis. Elige LSJ pro productis fidelibus et optimae qualitatis, atque pro excellenti servitio clientium. Copyright © Beijing LSJ Technology Development Co., Ltd. Omnia Jura Servata
-
Politia Privati
Imaginifer Infrarubens Thermicus Manualis
Praemia Utor Manu Infrarubrum Thermalem Imaginem

Quomodo Eligere Recte Manu Infrarubrum Thermalem Imaginem Pro Tuis Necessitatibus

Consilia Utor Manu Infrarubrum Thermalem Imaginem Efficaciter

Futurum Manu Infrarubrum Thermalis Imaginis Technologiae
Why choose LSJ Technology Imaginifer Infrarubens Thermicus Manualis?
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
Cur LSJ Potest Esse Tuus Fabricator et Suppeditator Primatorum?
Qualitatem et Punctualitatem Consecutionis Tutamen: LSJ's Devotio ad Placitum Clientium
Categories Producti Relatae
Non invenis quod quaeris?
Petere Citatio Nunc
Consulere nostros pro magis productis disponibilibus.Cum Nobis Contacata