">
,需要通过父级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);
}
});
})();
Τα XIEHE MEDICAL έχουν δημιουργήσει φήμη για εξαιρετικότητα στην παραγωγή κατακόρυφων φορέων διάσωσης . Αν επιθυμείτε να αγοράσετε αυτούς τους φορείς σε χονδρική, τότε η αναζήτηση του πού να τους βρείτε στην καλύτερη τιμή και τα ζητήματα που πρέπει να λάβετε υπόψη σας κατά τη διαδικασία αγοράς είναι και τα δύο σημαντικά. Η XIEHE MEDICAL παρέχει διάφορα κοιτάση κατακόρυφης διάσωσης ο οποίος είναι ανθεκτικός, αξιόπιστος και εξατομικευμένος για τις απαιτήσεις της διάσωσης. Αυτό το φορείο είναι διαθέσιμο στην επίσημη ιστοσελίδα μας σε οικονομικές τιμές και μπορείτε να δείτε διάφορα μοντέλα για να ελέγξετε τα χαρακτηριστικά τους, να τα συγκρίνετε και να βρείτε τα κατάλληλα για τις ανάγκες σας. Επιπλέον, η XIEHE MEDICAL συνεργάζεται στενά με διανομείς και εταίρους σε όλο τον κόσμο για να διασφαλίσει ότι τα προϊόντα μας είναι εύκολα διαθέσιμα σε λογικές τιμές. Είτε από έναν εξουσιοδοτημένο διανομέα μας είτε αγοράζοντας απευθείας από εμάς, μπορείτε να είστε ήσυχοι ότι τα κάθετα φορεία διάσωσης που λαμβάνετε είναι πραγματικά γνήσια και ποιοτικά. Κατά την αγορά μεγάλων ποσοτήτων κατακόρυφων φορείων διάσωσης, είναι σημαντικό να ληφθούν υπόψη οι απαιτήσεις χρήσης, η μέγιστη αντοχή σε βάρος, η ποιότητα του υλικού και να διασφαλιστεί ότι ο φορέας μπορεί εύκολα να διπλωθεί για αποθήκευση ή μεταφορά. Η XIEHE MEDICAL παρέχει επίσης μια σειρά φορέων που καλύπτουν διαφορετικούς σκοπούς, όπως διάσωση σε ορεινές περιοχές, χρήση σε ψηλά κτίρια ή σε περιοχές με περιορισμένη πρόσβαση. Αξιολογώντας τις επιμέρους ανάγκες των επιχειρήσεων διάσωσης και τις δυνατότητες των διαφορετικών φορέων, μπορείτε να καθορίσετε ποια μοντέλα χρειάζεται να διανείμετε. Επιπλέον, η μακροχρόνια ανθεκτικότητα, οι ανάγκες συντήρησης και η εγγύηση κάλυψης των φορέων μπορεί να εξαρτώνται από το αν επενδύετε σε κάτι που πραγματικά θα διαρκέσει για μεγάλο χρονικό διάστημα. Όταν επιλέγετε την XIEHE MEDICAL ως κατασκευαστή κατακόρυφων φορέων διάσωσης, μπορείτε να είστε βέβαιοι ότι λαμβάνετε προϊόντα εξαιρετικής ποιότητας σε εξαιρετική τιμή. Όταν αναζητάτε ένα κατακόρυφο φορείο διάσωσης χονδρικής, υπάρχουν πολλά σημαντικά χαρακτηριστικά που πρέπει να εξετάσετε για να βεβαιωθείτε ότι το προϊόν που αγοράζετε είναι ανθεκτικό και αποτελεσματικό. Πρώτον, πρέπει να βεβαιωθείτε ότι ο φορείος κατασκευάζεται από ισχυρά υλικά, όπως χάλυβας ή αλουμίνιο, ώστε να αντέχει στην αποστολή της διάσωσης. Ψάξτε για έναν φορείο ελαφρύ και φορητό, ώστε να μπορεί να μεταφερθεί γρήγορα σε διάφορες τοποθεσίες διάσωσης. Επιπλέον, ψάξτε για ρυθμιζόμενες ταινίες και ζώνες ασφαλείας που μπορούν να βοηθήσουν στην ασφαλή ασφάλιση του ασθενούς κατά τη διεξαγωγή κατακόρυφων διασώσεων. Εκτός από έναν εξαγωγικό φορείο Sked με μεταλλικό πλαίσιο, θέλω επίσης ένα φορείο που να διαθέτει πολλά σημεία σύνδεσης για διάφορα σχοινιά και καραμπίνες, ώστε να εξασφαλιστεί ότι μπορεί να χρησιμοποιηθεί ή να προσαρμοστεί για χρήση σε πολλές διαφορετικές καταστάσεις διάσωσης. Τέλος, επιλέξτε ένα φορείο που είναι εύκολο να καθαριστεί και να συντηρηθεί, ώστε να διαρκέσει πολύ καιρό. Αν αναζητάτε τους καλύτερους προμηθευτές κατακόρυφων φορείων διάσωσης χονδρικής, τότε τα XIEHE MEDICAL είναι σίγουρα μία επιλογή που αξίζει να ληφθεί υπόψη. Τα XIEHE MEDICAL παρέχουν διάφορους κατακόρυφους φορείς διάσωσης, οι οποίοι κατασκευάζονται με γνώμονα την ασφάλεια και την αντοχή. Αυτοί οι φορείς κατασκευάζονται σύμφωνα με τα υψηλότερα πρότυπα ποιότητας του κλάδου. Με τα XIEHE MEDICAL, εξασφαλίζεται ότι θα λάβετε το καλύτερο προϊόν για την παροχή πρώτων βοηθειών σε οποιονδήποτε χρειάζεται. Επιπλέον, τα XIEHE MEDICAL προσφέρουν εξαιρετικά ανταγωνιστικές τιμές και γρήγορες επιλογές αποστολής, έτσι αποτελούν συνεχώς μια αξιόπιστη πηγή για την παραγγελία κατακόρυφων φορέων διάσωσης χονδρικής. Η Xiehe Medical Apparatus Instruments ακολουθεί στρατηγική παγκοσμιοποίησης για τη μάρκετινγκ και τις πωλήσεις. Με πάνω από 10 χρόνια υποστήριξης από προμηθευτές, διαθέτει πάνω από 30 διανομείς σε όλο τον κόσμο, ενώ τα προϊόντα της διανέμονται σε πάνω από 120 χώρες. Επικεντρώνεται στη δημιουργία μακροπρόθεσμων εταιρικών σχέσεων με ειδικούς σε κατακόρυφη διάσωση φορείων και ολοκληρωτές, προκειμένου να οικοδομήσει το μέλλον μέσω συνεργασίας. Τα Ιατρικά Όργανα και Συσκευές Xiehe επιδεικνύουν ανελλιπή αφοσίωση στην καινοτομία και την έρευνα και ανάπτυξη, καθώς και στη δημιουργία προϊόντων με ανταγωνιστικά πλεονεκτήματα πώλησης. Είμαστε υπερήφανοι κάτοχοι μιας σειράς διπλωμάτων ευρεσιτεχνίας και δικαιωμάτων πνευματικής ιδιοκτησίας, συμπεριλαμβανομένων ανυψωτικών φορείων για κατακόρυφη διάσωση, εξοπλισμού πρώτων βοηθειών, νοσοκομειακής επίπλωσης και προϊόντων κηδείας. Τα προϊόντα μας δημιουργούνται για να καλύπτουν τις ανάγκες των πελατών και να ακολουθούν τις πιο πρόσφατες τάσεις. Αυτά τα προϊόντα έχουν κερδίσει ευρεία αποδοχή τόσο από εγχώριους όσο και από διεθνείς πελάτες. Οι Ιατρικές Συσκευές Hehe δίνουν προτεραιότητα στην ικανοποίηση των πελατών και καταβάλλουν κάθε δυνατή προσπάθεια για να εκπληρώσουν τις απαιτήσεις των πελατών με ποιότητα και αξιοπιστία. Είναι δυνατόν να προσφέρουμε στους πελάτες μας προσωπικοποιημένη υπηρεσία ανυψωτικού φορείου για κατακόρυφη διάσωση, λόγω της αφοσίωσης των εργαζομένων μας καθώς και της συνεργατικής τεχνολογίας που εφαρμόζουμε. Ο στόχος μας είναι να δημιουργήσουμε μακροπρόθεσμες, στέρεες και συνεργατικές σχέσεις με τους πελάτες, προσφέροντάς τους προϊόντα και υπηρεσίες υψηλότατης ποιότητας. Η Xiehe Medical Apparatus Instruments είναι ηγέτης της βιομηχανίας στην κατασκευή υψηλής ποιότητας ιατρικού εξοπλισμού. Προσφέρει επίσης ειδικές υπηρεσίες. Τηρεί αυστηρά το σύστημα ελέγχου ποιότητας ISO 13485 και όλα τα προϊόντα της είναι πιστοποιημένα από τον οργανισμό TÜV, την CE και την FDA, μεταξύ άλλων. Με μια αφοσιωμένη ομάδα ειδικών στους κατακόρυφους εξοπλισμούς διάσωσης, μπορεί να ανταποκρίνεται γρήγορα στις ανάγκες των πελατών και να παρέχει αξιόπιστα και ανθεκτικά προϊόντα και υπηρεσίες. Δεν έχει σημασία αν πρόκειται για αναδιπλούμενο φορείο, νοσοκομειακά έπιπλα ή είδη κηδείας· η Xiehe Medical Equipment μπορεί να προσφέρει στους πελάτες ικανοποιητικές λύσεις.κοιτάση κατακόρυφης διάσωσης
Πού να βρείτε κατακόρυφα φορεία διάσωσης υψηλής ποιότητας σε ανταγωνιστική τιμή

Τι πρέπει να λάβετε υπόψη σας όταν αγοράζετε κατακόρυφα φορεία διάσωσης σε μεγάλες ποσότητες

Βασικά χαρακτηριστικά που πρέπει να αναζητήσετε σε ένα κατακόρυφο φορείο διάσωσης για χονδρική πώληση

Οι καλύτεροι προμηθευτές κατακόρυφων φορείων διάσωσης
Why choose XIEHE MEDICAL
κοιτάση κατακόρυφης διάσωσης?
Διεθνής δίκτυο μάρκετινγκ και σταθεροί εταίροι
Ιννοβατική Ερευνα και Ανάπτυξη και Σημεία Πώλησης Προϊόντων
Πελατοκεντρική Γρήγορη μεταπωλητική υπηρεσία και τεχνική υποστήριξη
Προϊόντα υψηλής ποιότητας και ειδικευμένες υπηρεσίες
Σχετικές κατηγορίες προϊόντων
Δεν βρίσκετε αυτό που ψάχνετε;
Ζητήστε μια προσφορά τώρα
Επικοινωνήστε με τους συμβούλους μας για περισσότερα διαθέσιμα προϊόντα.Επικοινωνήστε μαζί μας