ramp kursi roda kami sangat mudah! Ramp ini tidak hanya memberikan solusi yang tahan lama, tetapi juga ...">
,需要通过父级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);
}
});
})();
Dan menggunakan landai kursi roda kami sangat mudah! Produk ini tidak hanya memberikan solusi yang tahan lama, tetapi juga alternatif hemat biaya untuk hasil yang berkelanjutan. Xiehe Medical landai kursi roda kami dianggap sebagai salah satu yang paling tahan lama dan paling terjangkau di pasaran, menjadikannya pilihan sempurna bagi mereka yang ingin menciptakan ruang inklusif dan dapat diakses bagi pasien mereka. Di mana tidak ada opsi untuk jalur landai, XIEHE MEDICAL menawarkan tangga kursi roda multifungsi yang dapat diterapkan di semua jenis tempat. Tangga praktis ini mudah dipasang dan dibongkar, serta tersedia untuk penggunaan sementara maupun permanen di mana pun pintu masuk dan anak tangga perlu dilalui oleh individu dengan kebutuhan mobilitas. Konstruksi Kuat Tangga kursi roda kini dibuat jauh lebih kuat dan stabil, menggunakan logam, sehingga menjadi akses yang kokoh dan andal bagi pengguna kursi roda. XIEHE MEDICAL memahami pentingnya aksesibilitas di setiap tempat kerja dan tangga kursi roda yang dapat disesuaikan kami dirancang untuk kenyamanan Anda. Baik itu hanya satu anak tangga atau serangkaian tangga untuk akses yang lebih baik, XIEHE MEDICAL memiliki solusi tangganya untuk Anda. Tangga kursi roda serbaguna kami diciptakan agar setiap ruangan menjadi mudah diakses dan ramah bagi orang-orang dengan mobilitas terbatas. Dengan tangga kursi roda portabel XIEHE MEDICAL, Anda dapat memastikan semua tamu dan pengunjung dapat hadir di acara atau lokasi Anda. Tangga berkualitas tinggi kami dibangun untuk memenuhi persyaratan keselamatan dan membantu orang yang menggunakan kursi roda berpindah dengan mudah. Baik Anda mencari satu set tangga atau beberapa tangga untuk ruangan yang lebih besar, XIEHE MEDICAL memiliki solusi untuk Anda. Dalam situasi tertentu, ram standar atau tangga biasa mungkin bukan cara paling praktis untuk mencapai aksesibilitas. » Lift kursi roda khusus dirancang sesuai kebutuhan Anda. Kami menekankan aspek kustomisasi dan lift kursi roda kami dapat disesuaikan dengan lingkungan apa pun, baik itu rumah, gedung perkantoran, maupun gedung publik. Dengan lift platform kursi roda yang dapat dikustomisasi dari XIEHE MEDICAL, Anda dapat memastikan setiap orang dengan mobilitas terbatas memiliki akses yang mudah dan aman ke setiap bagian venue Anda. Lift kursi roda bertenaga dari XIEHE MEDICAL dirancang untuk kenyamanan dan keselamatan pengguna. Lift ini mudah digunakan dan bahkan dapat dimodifikasi untuk menyesuaikan batas berat atau ukuran tertentu. Baik itu lift platform vertikal, lift platform miring, maupun jenis lift lainnya—kami memiliki solusi tepat yang Anda butuhkan. Tingkatkan aksesibilitas dalam segala situasi dengan lift kursi roda yang dibuat sesuai pesanan. Aksesibilitas, keselamatan, dan kemudahan penggunaan merupakan tantangan utama. Landai kursi roda XIEHE MEDICAL yang halus dan aman secara khusus dirancang untuk pintu masuk guna memastikan akses mudah bagi kursi roda dan skuter dengan semua ukuran. Dilengkapi permukaan anti-selip, pegangan cengkeraman anti-slip, dan pagar samping, landai kursi roda ini memungkinkan Anda melangkah dengan mantap dan penuh kepercayaan. Tidak peduli apakah Anda mencari landai lurus, landai lengkung, atau ingin mengonfigurasinya dengan sistem landai modular, XIEHE MEDICAL memiliki solusi yang sesuai dengan kebutuhan ruang dan aksesibilitas Anda. Xiehe Medical Apparatus Instruments menunjukkan komitmen tak tergoyahkan terhadap inovasi dan penelitian serta pengembangan (R&D), sekaligus menciptakan produk dengan keunggulan kompetitif di pasaran. Kami adalah pemilik berbagai paten hak kekayaan intelektual, termasuk ramp kursi roda untuk tangga, peralatan pertolongan pertama, perabot rumah sakit, serta produk pemakaman. Produk-produk ini dirancang guna memenuhi kebutuhan pelanggan serta mengikuti tren terkini. Produk-produk ini mendapat sambutan baik dari pelanggan domestik maupun internasional. Hehe Medical Equipment memprioritaskan kepuasan pelanggan dan berupaya memenuhi kebutuhan klien kami dengan kualitas serta keandalan. Kami mampu menawarkan layanan yang personal dan andal kepada pelanggan berkat semangat tim kerja kami, serta teknologi kolaboratif yang kami terapkan. Tujuan kami adalah membangun kemitraan jangka panjang, stabil, dan kooperatif dengan pelanggan kami dalam hal kursi roda, serta menyediakan produk dan layanan berkualitas tinggi. Xiehe Medical Apparatus Instruments telah mengembangkan Strategi Pemasaran dan Penjualan Global untuk Tangga Kursi Roda. Perusahaan memiliki lebih dari 30 distributor yang tersebar di 120 negara berbeda, setelah lebih dari 10 tahun upaya bantuan dari mitra-mitra kami. Kami berfokus pada pembangunan kemitraan jangka panjang dengan para distributor maupun integrator guna bersama-sama membangun masa depan. Sebagai produsen profesional peralatan medis, Xiehe Medical Apparatus & Instruments menyediakan produk berkualitas tinggi serta layanan khusus. Kami menerapkan secara ketat sistem pengendalian kualitas ISO 13485, dan seluruh produk kami telah bersertifikasi TUV, CE, FDA, serta banyak lagi. Kami memiliki tim khusus untuk kursi roda yang mampu merespons cepat permintaan pelanggan serta menyediakan produk berkualitas tinggi dan stabil. Ketika Anda membutuhkan brankar ambulans, brankar lipat, perabot rumah sakit, atau barang-barang pemakaman, Xiehe Medical Equipment memiliki solusinya.tangga untuk kursi roda
Tangga Kursi Roda Serbaguna untuk Aksesibilitas di Berbagai Lingkungan

Tangga Portabel Berkualitas Tinggi untuk Acara dan Tempat Umum bagi Pengguna Kursi Roda

Lift Kursi Roda yang Dapat Disesuaikan sesuai Kebutuhan Anda

Landasan Kursi Roda yang Halus dan Aman untuk Navigasi Tanpa Hambatan
Why choose XIEHE MEDICAL
tangga untuk kursi roda?
Inovasi R dan D serta Keunggulan Produk
Berfokus pada Pelanggan Layanan purna jual dan dukungan teknis yang cepat
Jaringan pemasaran global dan mitra stabil
Produk berkualitas tinggi dan layanan khusus
Kategori produk terkait
Tidak menemukan apa yang Anda cari?
Ajukan Penawaran Sekarang
Hubungi konsultan kami untuk produk yang tersedia lainnya.Hubungi Kami