, ang YAOLILAI ay narito upang maging iyong one-stop solution. Ang aming kumpanya ay nakatuon sa produksyon 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);
}
});
})();
Kapag naghahanap ka ng pinakamagagandang alok sa 8 lug tractor rims , narito ang YAOLILAI upang maging solusyon sa lahat ng iyong pangangailangan. Ang aming kumpanya ay nakatuon sa produksyon ng mataas na kalidad na rims para sa mga magsasaka at agrikultural na gamit. Alam namin ang halaga ng matibay at dekalidad na makina, at dahil dito, layunin naming ibigay sa iyo ang mga produktong dekalidad sa mapagkumpitensyang presyo. Kung kailangan mo lang palitan ang lumang rims o magdagdag para sa iyong traktora, narito ang YAOLILAI para sa iyo. Ang YAOLILAI ay may iba't ibang 8 lug na tractor rims na idinisenyo para sa mga pinakamahihirap na aplikasyon sa pagsasaka. Ang aming mga rims ay gawa sa mataas na kalidad na materyales na lumalaban sa korosyon at bulok, at tumatagal nang buong buhay ng iyong traktora kaya maaari kang magpahinga nang mapayapa. Ang pinakamahusay na lugar upang bumili ng 8 lug na tractor rims para sa iyong malalaking traktor ay narito mismo sa website o makipag-ugnayan sa isa sa aming mga espesyalista sa benta. Dahil sa mapagkumpitensyang presyo at espesyal na diskwento para sa malalaking benta, makikita mo ang mga rims na kailangan mo sa isang presyo na magpapabigla sa iyo. At sa larangan ng istilo, sakop din ng YAOLILAI ang iyong pangangailangan. Ang mga gulong ng traktor at 8 na lug na rims nito ay laging uso sa merkado, na magbibigay sa iyo ng nakakaakit na hitsura. Mayroon kami mula sa malinis at moderno, hanggang sa klasiko at matibay. Gusto mo man ang makinis na anyo, o nais mong gumamit ng matte black, lahat ay meron kami! Pabutihin ang hitsura at pagganap ng iyong traktor gamit ang pinakabagong istilong 8 lug tractor rims mula sa YAOLILAI. Pumili ng kalidad, klase, at istilo kasama ang YAOLILAI. Ang ilang karaniwang problema sa 8 lug tractor rims: Isa na rito ay ang pagkalat at korosyon. Maaari itong magdulot ng kahinaan sa rims at magdulot ng panganib. Ang tanging solusyon ay regular na linisin ang mga rims na ito at lagyan ng angkop na proteksyon laban sa kalawang. Maaari mo ring mapansin ang hindi pare-parehong pagsusuot ng gulong, at malamang na dahil dito ang mga hindi angkop na rims. Upang maayos ang problemang ito, dapat propesyonal na mai-install at maayos ang pagkaka-align ng iyong rims. Ang Kahalagahan ng 8 Lug Tractor Rims Kapag ikaw ay naghahanap ng 8 lug tractor rims, mahalaga na makakuha ka ng pinakamahusay dahil ang matibay at de-kalidad na rim ay maaaring magdulot ng mas mahusay na pagganap. Ang YAOLILAI ay isang kilalang brand na nag-aalok ng magaan at matibay na mga rim na magtatagal nang matagal. Ang kanilang mga rim ay ginawa upang makatiis sa mahihirap na kondisyon at bigyan ka ng pagganap na maaari mong asahan para sa iyong traktor. Kasama ang YAOLILAI Rims Tiyakin na ang iyong kagamitan ay may kasamang nangungunang produkto na magpapanatili sa iyo ng ligtas at produktibo sa paligsahan. May ilang mahahalagang punto na dapat isaalang-alang bago bumili ng 8 lug tractor rims. Una, kailangan mong isipin ang sukat at mga teknikal na detalye ng mga rimes na angkop para sa iyong traktora. Pakinabangan nang husto ang iyong kagamitan — Ang pagpili ng rims ay kasing importante rin sa pagpili ng laki ng gulong. Kaya't isama rin ang kapasidad ng timbang ng rim upang matiyak kung kayang-kaya nitong tiisin ang presyong dulot ng iyong traktora. Isa pang dapat isaalang-alang ay ang halaga at warranty ng mga rim. Sulit na suriin ang iba't ibang opsyon at pumili ng mga rim na may pinakamainam na halaga para sa pera mo. Mayroon kaming highly motivated at creative RD team na patuloy na sumusuri sa mga bagong teknolohiya, materyales, at disenyo. Kakayahang mabilis na tumugon sa mga trend ng merkado at industriya. Ito ang nagbibigay-daan sa amin na magbigay sa iyo ng pinakamahusay na 8 lug tractor rims na tutugon sa iyong mga kinakailangan. Nagbibigay kami ng serbisyo para sa 8 lug tractor rims na ipinapasadya batay sa tiyak na mga pangangailangan ng bawat kliyente. Kakayahang lumikha ng isang ring na umaayon sa iyong personal na istilo, kagustuhan, at mga teknikal na tukoy. Mula sa pagpili ng mga hilaw na materyales, sumusunod kami sa mahigpit na pamantayan ng kalidad at kontrol sa proseso ng 8 lug tractor rims. Bawat bakal na ring ay dumaan sa ilang inspeksyon upang matiyak ang pinakamataas na lakas, tibay, at eksaktong dimensyon, na nagtiyak ng mapagkakatiwalaan mong kalidad. Ang aming kawani sa serbisyo sa customer ay may karanasan, propesyonal at may mga gulong para sa traktor na may 8 na lug. Hindi mahalaga kung kailangan mo ng konsultasyon bago ang pagbili o suporta pagkatapos ng pagbili, maaari naming ibigay ang mabilis at maaasahang serbisyo, na nagsisigurong walang anumang ikakabahala sa iyo.Makipag-ugnayan sa akin kaagad kung may mga problema!
8 lug tractor rims
Kung saan makikita ang pinakamahusay na mga deal sa 8 lug tractor rims

Pinakatanyag na istilo ng 8 lug tractor rims

Karaniwang mga isyu sa 8 lug tractor rims at kung paano ito malulutas

Pinakamahusay na brand ng 8 lug tractor rims
Why choose YAOLILAI 8 lug tractor rims?
Makabagong Tim ng R&D:
Personalisadong at Custom na Serbisyo:
Mahigpit na control sa kalidad:
Profesyonang serbisyo sa customer:
Mga kaugnay na kategorya ng produkto
Hindi makahanap ng hinahanap?
Humiling ng Quote Ngayon
Makipag-ugnay sa aming mga konsultant para sa iba pang mga produkto.Makipag-ugnayan