&l...">
,需要通过父级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);
}
});
})();
Durch Innovation das Leben erleichtern XIEHE MEDICAL elektrische Treppensteigergestell Haben Sie eigentlich schon einmal Probleme gehabt, schwere und umfangreiche Gegenstände die Treppe hinauf oder hinunter zu tragen? Die Tage, in denen man einen Handwagen benutzen muss, der nicht elektrisch betrieben wird, sind vorbei! Diese Maschine bietet mehrere erstaunliche Vorteile, die es zu einem unerlässlichen Werkzeug für alle machen, die Gegenstände die Treppe hinauf oder hinunter transportieren müssen. XIEHE MEDICAL scoop-Tragebrett-Gurte der erste Vorteil ist, dass es tatsächlich mit Elektrizität betrieben wird, was es viel einfacher macht, schwere Lasten die Treppe hinauf oder hinunter zu bringen, anstatt es allein zu tun. Zweitens ermöglicht sein Design eine effizientere und wirksamere Transportmethode im Vergleich zu herkömmlichen Handkarren. Schließlich ist es viel sicherer als das Verschieben von Gegenständen auf der Treppe allein. Innovation hat das Herz des elektrischen Treppen-Trolleys erreicht, der tatsächlich steigt. Mit seiner Technologie ist dies eindeutig ein fortschrittlicher Stand und hat die Art und Weise, wie Menschen Gegenstände nach oben transportieren, revolutioniert. Es ist tatsächlich effizienter und wirksamer als herkömmliche Trolleys, da sein leistungsstarker Elektromotor es einfacher macht, Produkte zu bewegen, ohne den Rücken und die Muskeln zu belasten. XIEHE MEDICAL einzelcampingtrage besprechen. der Motor ermöglicht es dem Trolley, Treppen mühelos zu erklimmen, und sein eigenes Design erlaubt es zudem, sich in engen Räumen und schmalen Gängen zu bewegen. Sicherheit ist offensichtlich eine Priorität, wenn es um Gegenstände geht, die Treppen transportieren. Dies ist tatsächlich ein Kletter-Schutz, der durch einen elektrischen Treppen-Trolley gewährleistet wird. Er wurde mit Sicherheit im Sinn entwickelt, mit Funktionen wie einer Plattform, die tatsächlich nicht rutscht und ein Bremsystem, um sicherzustellen, dass Ihre Waren und Ausrüstungen sicher und gesichert transportiert werden. XIEHE MEDICAL spinnenbänder für Wirbelsäulenliege die Sensoren erkennen Hindernisse und verhindern, dass der Trolley sich bewegt, wenn ein Hindernis vorhanden ist. Die Arbeitsplattform ist nicht rutschfest und die Bremsen sorgen dafür, dass der Trolley an Ort und Stelle bleibt, selbst wenn er nicht in Gebrauch ist. Der elektrische Treppen-Trolley und das Klettern sind sehr einfach zu bedienen. Er ist so gestaltet, dass er benutzerfreundlich ist, mit einem einfachen Display, das es jedem ermöglicht, ihn zu bedienen. Zuerst platzieren Sie Ihre Last auf die Plattform, sichern Sie sie mit den bereitgestellten Gurten und schalten Sie dann die Energie ein. XIEHE MEDICAL rückenbrett-Gurte die Steuerung erfolgt über den Griff, und Sie können den Trolley problemlos mit einem Druck auf eine Taste die Treppe hinauf und hinunter bewegen. Der Trolley kann auf flachen Flächen verwendet werden, was ihn zu einem wirklich vielseitigen Transportmittel in verschiedenen Situationen macht. Hehe Medical Equipment legt großen Wert auf die Kundenzufriedenheit und bemüht sich, die Anforderungen der Kunden durch Qualität und Zuverlässigkeit zu erfüllen. Aufgrund des Einsatzes unserer Mitarbeiter sowie der von uns eingesetzten kollaborativen Technologie können wir unseren Kunden einen persönlichen Service rund um den elektrischen Treppensteiger-Wagen anbieten. Unser Ziel ist es, langfristige, stabile und partnerschaftliche Beziehungen mit unseren Kunden aufzubauen und ihnen hochwertige Produkte und Dienstleistungen zu bieten. Als renommierter Hersteller medizinischer Geräte bietet Xiehe Medical Apparatus Instruments hochwertige Produkte sowie spezialisierte Dienstleistungen. Wir folgen streng den Qualitätskontrollstandards nach ISO 13485; alle unsere Produkte sind von TÜV, CE, FDA usw. zugelassen. Wir verfügen über einen Experten für elektrische Treppensteiger-Dollies, der schnell auf Kundenanforderungen reagieren und stabile, zuverlässige Produkte liefern kann. Ob Krankenwagen-Trage, klappbare Trage, Krankenhausmöbel oder Bestattungsartikel – Xiehe Medical Equipment bietet seinen Kunden zufriedenstellende Lösungen. Xiehe Medical Apparatus Instruments ist kontinuierlich in kreativer Forschung und Entwicklung engagiert und bemüht sich darum, wettbewerbsfähige Produktverkaufsargumente bereitzustellen. Das Unternehmen hält eine Vielzahl von Patenten sowie Schutzrechten für geistiges Eigentum, wie zum Beispiel für Medizingeräte, Notfallausrüstungen, Krankenhausmöbel und Bestattungsprodukte. Die Produkte werden hergestellt, um den Bedürfnissen der Kunden gerecht zu werden und aktuellen Trends zu entsprechen. Diese Produkte werden sowohl von internationalen als auch von nationalen Kunden sehr geschätzt, insbesondere der elektrische Treppenroller. Xiehe Medical Apparatus Instruments setzt sich für ein global ausgerichtetes Marketing und Vertrieb ein. Dank der Unterstützung unserer Partner in den letzten zehn Jahren verfügen wir mittlerweile über mehr als 30 Distributoren weltweit; unsere Produkte werden in über 120 Länder verteilt. Wir konzentrieren uns auf langfristige Partnerschaften mit Distributoren und Systemintegratoren im Bereich elektrischer Treppensteiger-Dollies, um gemeinsam die Zukunft zu gestalten. Beim Kauf eines elektrischen Treppen-Trolleys ist es wichtig, die Qualität und den Kundenservice des Produkts zu prüfen. Ein Standard für einen hochwertigen elektrischen Treppen-Trolley. Er wird aus hochwertigen Materialien hergestellt, die eine hohe Haltbarkeit und Lebensdauer garantieren. Der von dem Unternehmen geleistete Service ist. XIEHE MEDICAL schiene für Fingerriss auch großartig Das Unternehmen bietet Garantien sowie Kundenbetreuung mit qualifiziertem Personal, das bereitsteht und Ihnen bei allen relevanten Fragen oder Problemen helfen kann, die Sie haben. Elektrischer Treppen-Tragwagen, der sich ideal für eine breite Palette von Einsatzbereichen eignet. Er kann problemlos in Haushalten, Büros, Krankenhäusern, Lagern und vielen anderen Bereichen eingesetzt werden. Besonders geeignet ist er für Fachkräfte, die regelmäßig Waren Treppen hinunter oder hinauf transportieren müssen. XIEHE MEDICAL stufensteigender elektrischer Handwagen dieser elektrische Treppen-Tragwagen eignet sich besonders für Menschen mit körperlichen Beeinträchtigungen oder Rückenproblemen, da er das schwere Heben überflüssig macht, das zu Rückenbelastung und Verletzungen führen könnte. Elektrische Treppensteigergestell
Vorteile des elektrischen Treppenrollwagens

Innovation im elektrischen Treppenrollwagen

Sicherheit des elektrischen Treppenrollwagens

Verwendung des elektrischen Treppenrollwagens
Why choose XIEHE MEDICAL
Elektrische Treppensteigergestell?
Kundenorientierter schneller Nachverkaufsservice und technischer Support
Hochwertige Produkte und spezialisierte Dienstleistungen
Innovatives Forschung & Entwicklung und Produktverkaufsargumente
Globales Marketing-Netzwerk und stabile Partner
Service und Qualität
Anwendung des elektrischen Treppensteiger-Wagens
Finden Sie nicht, wonach Sie suchen?
Angebot anfordern
Kontaktieren Sie unsere Berater für weitere verfügbare Produkte.Kontakt aufnehmen