có lẽ chính là thứ bạn đang tìm kiếm! Không chỉ lớn hơn các vành thông thường…">
,需要通过父级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);
}
});
})();
Nếu bạn muốn chiếc xe tải của mình trông đẹp và nổi bật, thì YAOLILAI vành xe ô tô có lẽ là thứ bạn đang tìm kiếm! Không chỉ lớn hơn những vành xe thông thường mà còn mạnh mẽ hơn đáng kể. Điều này có nghĩa là chúng có thể chở nhiều trọng lượng hơn và giúp chiếc xe tải của bạn hoạt động tốt hơn trên đường. Chúng không chỉ làm cho xe tải của bạn trông đẹp hơn với các thiết kế bóng bẩy và cool mà còn mang lại rất nhiều lợi ích thực tế có thể thực sự giúp bạn khi lái xe hoặc vận chuyển đồ đạc. YAOLILAI hiểu rõ tầm quan trọng của vành chất lượng cao cho xe tải của bạn. Đây là lý do chúng tôi có một loạt các loại vành xe tải lớn được thiết kế để bền bỉ trong thời gian dài. Chúng tôi sử dụng vật liệu chất lượng cao, bền bỉ trong vành của mình nhằm tối ưu hiệu suất lâu dài, vì vậy bạn có thể yên tâm rằng chúng sẽ cung cấp sức mạnh cần thiết trong điều kiện phức tạp và sử dụng liên tục. Dù bạn đang di chuyển trên đường cao tốc hay đi địa hình rough trên những con đường nhỏ, các bánh xe của chúng tôi được chế tạo để phục vụ cho cuộc phiêu lưu tốt nhất của bạn. Độ bền của vành xe Big rig là một trong những lý do khiến bạn muốn chọn chúng. Những sản phẩm YAOLILAI này vành thép được thiết kế đặc biệt để vận chuyển những công việc nặng, do đó, chúng tăng cường sức mạnh và sự ổn định của xe tải khi di chuyển. Nó cho phép bạn kéo nhiều trọng lượng hơn mà không lo lắng về việc xe tải bị quá tải. Bạn sẽ có thể lái xe với sự tự tin hơn, với niềm tin rằng chiếc xe tải của bạn đã sẵn sàng đối mặt với mọi thử thách phía trước. Lốp xe lớn cũng sẽ cải thiện khả năng điều khiển của xe tải khi đang lái. Diện tích tiếp xúc lớn hơn: Nếu bạn từng đi trên những lốp xe rộng hơn, bạn sẽ biết rằng điều này tốt hơn vì chúng tiếp xúc với mặt đường nhiều hơn do kích thước lớn hơn so với các loại vành cơ bản mà người ta thường sử dụng. Điều này cung cấp sự ổn định và bám đường tốt hơn trong điều kiện ướt hoặc trơn trượt. Có sự thuận tiện khi lái xe trong các điều kiện thời tiết khác nhau giúp bạn cảm thấy an toàn và kiểm soát tốt, dẫn đến một chuyến đi mượt mà và thú vị. Vành xe tải nặng có thể mang lại cho xe tải của bạn một vẻ ngoài mới, tươi mới nếu đó là điều bạn đang tìm kiếm. Có hàng tấn phong cách, màu sắc và bề mặt khác nhau có sẵn cho những chiếc vành này, vì vậy bạn có thể chọn cái bạn thích nhất. Chắc chắn là có một chiếc vành xe tải phù hợp với gu thẩm mỹ của bạn, dù bạn đang tìm kiếm kiểu xe tải bóng bẩy, hiện đại hay mạnh mẽ, và bạn có thể yên tâm rằng xe tải của mình sẽ trông rất ngầu. Vành xe tải lớn chắc chắn sẽ giúp thu hút sự chú ý và ánh mắt của mọi người khi bạn lái xe nếu đó là điều bạn muốn. Chúng thường lớn hơn và nổi bật về mặt thị giác so với các loại vành thông thường. Địa điểm không quan trọng; bạn sẽ được công nhận và đánh giá cao vì gu thẩm mỹ tuyệt vời trong việc lựa chọn xe tải. Vành Xe Tải Lớn — Dù trên đường cao tốc hay trong bãi đỗ xe, xe tải của bạn sẽ nổi bật với một bộ vành xe tải lớn. Mục tiêu của chúng tôi tại YAOLILAI là giúp khách hàng khai thác tối đa tiềm năng của xe tải. Đó là lý do tại sao chúng tôi cung cấp nhiều sản phẩm YAOLILAI lốp xe tải được chế tạo để đạt hiệu suất xuất sắc.和những vành xe của chúng tôi được thiết kế để tồn tại ngay cả trong điều kiện khắc nghiệt nhất, chúng tôi đảm bảo rằng chúng sẽ không hỏng ngay cả khi bị thử thách nặng nề. Đầu tư vào những vành xe chất lượng cao của chúng tôi là một trong những lựa chọn tốt nhất và thông minh nhất mà bạn có thể tự tin vào. Chúng tôi sở hữu một đội ngũ nghiên cứu và phát triển (R&D) đầy nhiệt huyết và sáng tạo, không ngừng khám phá những công nghệ, vật liệu và thiết kế mới. Chúng tôi có khả năng phản ứng nhanh nhạy trước các xu hướng thị trường và ngành công nghiệp. Điều này giúp chúng tôi cung cấp cho bạn những vành xe đầu kéo lớn nhất phù hợp với yêu cầu của bạn. Đội ngũ chuyên về vành xe đầu kéo lớn của chúng tôi thân thiện, am hiểu chuyên môn và luôn thấu đáo. Dù là dịch vụ trước khi mua hay sau khi bán, chúng tôi đều có thể mang đến cho bạn những hỗ trợ nhanh chóng và đáng tin cậy. Đội ngũ vành xe đầu kéo lớn hiểu rằng nhu cầu của từng khách hàng là khác nhau, vì vậy chúng tôi cung cấp nhiều dịch vụ cá nhân hóa. Chúng tôi có thể chế tạo một chiếc vành phù hợp với phong cách, thiết kế và yêu cầu cụ thể của bạn. Từ việc chọn nguyên liệu, chúng tôi tuân thủ các tiêu chuẩn nghiêm ngặt về chất lượng và kiểm soát quy trình sản xuất Big rig rims. Mỗi vành thép đều trải qua nhiều lần kiểm tra để đảm bảo độ bền cao nhất, khả năng chịu lực và kích thước chính xác, đảm bảo bạn có được chất lượng đáng tin cậy.Liên hệ với tôi ngay lập tức nếu bạn gặp vấn đề!
Vành xe big rig
Trải nghiệm sức mạnh của vành xe Big Rig

Biến đổi chiếc xe tải của bạn với vành xe Big Rig

Thu hút sự chú ý trên đường với vành xe Big Rig

Khai phá tiềm năng của xe tải với vành xe Big Rig
Why choose YAOLILAI Vành xe big rig?
Đội ngũ Nghiên cứu & Phát triển Sáng tạo:
Dịch vụ khách hàng chuyên nghiệp:
Dịch vụ cá nhân hóa và tùy chỉnh:
Kiểm soát chất lượng nghiêm ngặt:
Không Tìm Thấy Thứ Bạn Đang Tìm?
Yêu Cầu Báo Giá Ngay
Liên hệ với các chuyên gia tư vấn của chúng tôi để biết thêm sản phẩm có sẵn.Liên hệ với chúng tôi