ini menawarkan nilai yang sangat baik untuk anda...">
,需要通过父级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);
}
});
})();
Selain itu, rim-rim ini rim roda besi adalah nilai yang hebat untuk kenderaan anda – memastikan ketahanan dan kualiti pada sebarang bajet. Kekuatan, ketahanan, dan nilai hebat inilah yang menjadikan tayar ini terus menjadi salah satu pilihan paling popular. Ciri-ciri: Rupa klasik Kuat, mudah dibersihkan dan rintang kakisan Harga berpatutan Kapasiti ditingkatkan untuk menyebarkan haba Berat (pon): 25 Saiz Tayar: 17x8 Corak Bolt: 6-139.7 Ruang Belakang: 4.51 DFITW Jaminan Hayat Jaminan Kejutan Jaminan Struktur DFITW Amaran: Magnesium dikenali kerana keupayaannya menghasilkan jenis lengkungan tertentu yang memerlukan kerja kimpalan yang sangat sedikit. Apabila memilih rim roda keluli untuk kenderaan anda, terdapat beberapa perkara yang perlu dipertimbangkan bagi memastikan anda mendapatkan yang bersesuaian dan mengikut kehendak anda. Pertama, tentukan saiz roda yang serasi dengan tayar dan kenderaan anda. Memilih saiz yang salah boleh mengubahsuai prestasi kenderaan serta menjejaskan keselamatannya, oleh itu rujuk manual pemilik atau nasihat pakar untuk mengetahui dimensi yang sesuai. Selain itu, anda perlu mengambil kira keadaan jalan dan cuaca di tempat-tempat yang akan anda pandu apabila membuat pemilihan rim roda besi yang akan sesuai untuk kawasan sedemikian. Jika anda berada di kawasan dengan cuaca buruk, salji, dan garam di jalan raya, pertimbangkan untuk membeli rim dengan rintangan kakisan yang lebih baik. Mengambil kira iklim dan bentuk muka bumi kawasan anda tidak sahaja memanjangkan jangka hayat rim anda, malah juga memberikan pengalaman memandu yang unggul sepanjang tahun. Anda juga perlu melihat harga dan waranti yang ditawarkan oleh pengeluar lain untuk memastikan anda mendapat harga terbaik untuk rim roda keluli anda, dengan sedikit kualiti dan nilai yang baik. Ketahui beberapa jenama yang boleh dipercayai dan baca ulasan pelanggan sebelum membeli rim untuk kereta anda. Apabila anda membeli rim roda keluli berkualiti tinggi daripada sumber yang terkenal, kami boleh menjamin bahawa anda akan mendapat produk yang kuat dan boleh dipercayai serta mematuhi piawaian dan peraturan industri. memilih rim roda besi yang sesuai untuk kenderaan anda melibatkan banyak faktor termasuk saiz, reka bentuk dan kapasiti beban bersama dengan pertimbangan praktikal harian seperti keadaan memandu, iklim dan harga untuk memastikan anda memiliki roda yang menawarkan keselamatan, prestasi, gaya dan harga — atau nilai yang boleh dikatakan. YAOLILAI mempunyai pelbagai pilihan rim roda besi yang tahan lama untuk menyokong keseluruhan pengalaman memandu bagi kereta. Adalah keutamaan utama kami untuk menyediakan anda dengan rim roda besi yang direka dan dihasilkan tepat seperti yang anda inginkan, semua disertai dengan kualiti yang tiada tandingan. Jika rim roda keluli anda rosak, anda perlu mengetahui cara mencegah masalah biasa. Salah satu perkara yang boleh menjejaskan rim dari semasa ke semasa ialah karat. Untuk mencegahnya, bersihkan rim roda keluli dengan sabun lembut dan air secara berkala, kilatkan dan lindungi daripada karat. Masalah lain yang perlu diwaspadai ialah lenturan atau kemekan, yang boleh berlaku apabila anda melanggar lubang jalan atau permukaan kasar yang lain. Untuk mengelakkannya, elakkan jalan yang kasar dan pandu dengan berhati-hati. Dan tentunya anda ingin memantau tekanan tayar supaya rim tidak haus secara tidak sekata, satu isu yang boleh menyebabkan masalah pada masa hadapan. Ketahanan adalah perkara utama apabila memilih rim roda keluli terbaik untuk penggunaan luar jalan. YAOLILAI, yang pakar dalam pengeluaran rim roda keluli, menyediakan pelbagai pilihan paling lengkap untuk aplikasi luar jalan — pilihan ideal untuk sebarang petualangan yang menanti di hadapan. Cari beberapa roda keluli berkualiti tinggi dengan bib luar yang tebal untuk menambah ketahanan. Selain itu, cari rim berrekabentuk beadlock untuk mengelakkan tayar daripada berputar atau bergeser semasa aktiviti luar jalan. Dengan rim roda keluli YAOLILAI, anda boleh yakin bahawa kenderaan anda sedia untuk apa jua cabaran luar jalan! Rim roda keluli memahami bahawa keperluan setiap pelanggan berbeza, dan kami menawarkan pelbagai perkhidmatan yang dipersonalisasikan. Kami boleh mencipta rim yang sesuai dengan gaya, reka bentuk dan keperluan anda. Kami mempunyai pasukan R&D yang sangat termotivasi dan kreatif, yang sentiasa mengkaji rim roda keluli, bahan-bahan dan reka bentuknya. Kami mampu bertindak pantas terhadap trend pasaran dan industri. Ini membolehkan kami menawarkan rim keluli yang paling berkesan untuk memenuhi keperluan anda. Kami mempunyai rim roda keluli serta staf perkhidmatan yang kompeten, berpengetahuan luas, mesra dan membantu bagi pelanggan. Sama ada perundingan sebelum pembelian atau bantuan selepas pembelian, kami mampu memberikan perkhidmatan yang cekap dan berkualiti, memastikan anda tidak perlu risau. Daripada rim roda keluli daripada bahan mentah: Daripada pemilihan bahan mentah hingga kepada produk akhir, kami mengikuti piawaian kualiti yang ketat dan mengawal setiap peringkat proses pengeluaran. Setiap cincin keluli melalui pelbagai proses pemeriksaan untuk memastikan kualitinya yang tinggi, ketahanan serta dimensinya yang tepat. Kami menawarkan jaminan kualiti tinggi.Hubungi saya dengan segera jika anda menghadapi masalah!
rim roda besi
Ketahui 10 manfaat utama rim roda keluli

Cara memilih rim roda keluli terbaik untuk kenderaan anda

Masalah biasa dengan rim roda keluli dan cara mengelakkannya
Rim roda keluli terbaik untuk kenderaan luar jalan
Why choose YAOLILAI rim roda besi?
Perkhidmatan yang disesuaikan dan tersuai:
Pasukan R&D Inovatif:
Perkhidmatan pelanggan profesional:
Kawalan kualiti yang ketat:
Kategori produk berkaitan
Tidak jumpa apa yang anda cari?
Minta Sebut Harga Sekarang
Hubungi pakar kami untuk mendapatkan lebih banyak produk yang tersedia.Hubungi Kami