bo'yicha eng yaxshi takliflarni qidirayotganda, YAOLILAI siz uchun bitta to'xtash nuqtasi sifatida xizmat qiladi. Kompaniyamiz ... ishlab chiqarishga e'tibor qaratadi.">
,需要通过父级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);
}
});
})();
Agar siz eng yaxshi takliflarni qidiryotgan bo'lsangiz 8-donali traktor disklari , YAOLILAI sizga barcha ehtiyojlaringizni qondiruvchi yechim bo'lib xizmat qiladi. Kompaniyamiz dehqonlar va qishloq xo'jaligi maqsadlari uchun sifatli diskliklar ishlab chiqarishga e'tibor qaratadi. Biz doimiy, sifatli mexanizmlarning ahamiyatini bilamiz va shu sababli ham arzon baholarga yuqori sifatli mahsulotlar taklif etish maqsad qilganimiz. Eski diskliklarni almashtirishingiz yoki traktoringiz uchun yangi disklik qo'shishingiz kerak bo'lsa, YAOLILAI sizga xizmat ko'rsatishga tayyor. YAOLILAI sizning katta traktoringiz uchun mo'ljallangan, eng qattiq qishloq xo'jaligi ishlariga moslashtirilgan 8 ta boltli traktor disklarining turli xil modelariga ega. Bizning diskla yuqori sifatli materiallardan tayyorlangan bo'lib, korroziyaga va rustga chidamli, traktoringiz hayotingiz davomida xizmat qiladi, shu sababli ham xavfsiz bo'ling. Sizning katta traktoringiz uchun 8 ta boltli traktor disklarini sotib olishning eng yaxshi joyi — bu veb-saytimiz yoki bizning sotuv bo'yicha mutaxassislardan biri bilan muloqot o'rnatish. Katta hajmdagi sotuvlar uchun arzon narxlar va maxsus chegirmalar bilan siz kerakli diskni ajoyib narxda topishingiz mumkin. Shuningdek, uslub jihatidan ham YAOLILAI sizga xizmat ko'rsatadi. Traktor g'ildiraklari va 8-burama traktor disklari doim bozorda trend bo'lib kelmoqda, bu esa sizga jo'shqin ko'rinish beradi. Bizda sof va zamonaviydan tortib, klassik va chidamligacha hamma narsa bor. Siz silliq ko'rinishni yaxshi ko'rsangiz ham, mat qora rangni xohlasangiz ham, barcha imkoniyatlar mavjud! YAOLILAI ning 8 buramali traktor diskining eng so'nggi moda namunalarini tanlash orqali traktoringizning tashqi ko'rinishi ham, ishlashi ham yaxshilanadi. Sifat, maqom va uslubni YAOLILAI bilan tanlang. 8 ta buramali traktor diskining ba'zi umumiy muammolari: Birinchisi — rust va korroziya. Bu disk uchun noxavfli vaziyat yaratishi va xavfli bo'lishi ehtimoli bor. Yagona yechim — ushbu diskni muntazam tozalab turish va rustga qarshi mos pokovka qo'llash kerak. Shuningdek, g'ildiraklarning tekis emas wear (tashlanishiga) duch kelishingiz mumkin, bu noto'g'ri o'rnatilgan disk sababli bo'lishi ehtimoli katta. Ushbu muammoni hal etish uchun disk professionallar tomonidan mutaxassisan o'rnatilishi va to'g'ri tekislashishi kerak. 8 ta boltli traktor disklarining ahamiyati Sizga 8 ta boltli traktor disklari kerak bo'lganda, siz eng yaxshisini olishingiz kerak, chunki chidamli va sifatli disk traktoringiz uchun yaxshiroq ishlash imkonini beradi. YAOLILAI — yengil va chidamli disk taklif qiluvchi taniqli brend bo'lib, ularning diskalari uzoq muddat xizmat qiladi. Ular qattiq sharoitlarga chidamli bo'lib, traktoringiz uchun ishonchli ishlashni ta'minlaydi. YAOLILAI disk bilan yetkaziladi. Sizning uskunangiz tezkor ishlaydigan mahsulotlar bilan jihozlanganligiga ishonch hosil qiling, bu sizni maydonda xavfsiz va samarali ishlashingizni ta'minlaydi. 8 ta boltli traktor disklarini sotib olishdan oldin o'ylab ko'rish kerak bo'lgan bir nechta muhim jihatlari mavjud. Avvalo, ushbu diskliklarning o'lchami va traktoringiz uchun mos keladigan texnik xususiyatlarini hisobga olishingiz kerak. Uskunangizdan maksimal foyda olish uchun diskliklarni tanlash g'ildirak o'lchamingizni tanlash kabi muhim. Shuningdek, disklikning og'irligini ham hisobga oling, shunda traktoringizning bosim yukini chidaya olishini aniqlashingiz mumkin. Yana bir jihat — diskliklarning narxi va kafolati. Turli alternativlarni solishtirish va eng yaxshi narx-sifat nisbatiga ega bo'lgan diskliklarni tanlash maqsadga muvofiqdir. Biz yangi texnologiyalar, materiallar va dizaynlarni doimiy ravishda o'rganadigan, juda faol va ijodiy RD jamoasiga ega. Biz bozor va sanoat tendentsiyalariga tezda javob bera olamiz. Bu sizga talablaringizni qondiradigan eng yaxshi 8 ta boltli traktor g'ildirak halqalarini taqdim etish imkonini beradi. Biz har bir mijozning aniq talablariga moslashtirilgan 8 ta boltli traktor g'ildirak halqalari xizmatlarini taqdim etamiz. Sizning shaxsiy uslubingizga, afzalliklaringizga va texnik talablaringizga mos keladigan halqa yaratishimiz mumkin. Xom ashyo tanlashdan boshlab, biz sifat va 8 ta boltli traktor g'ildirak halqalari jarayonini nazorat qilish bo'yicha qat'iy standartlarga amal qilamiz. Har bir po'lat halqa eng yuqori mustahkamlik, doimiylik va aniq o'lchamlarga erishish uchun bir necha bor tekshiruvdan o'tadi; bu sizga ishonchli sifat kafolatini ta'minlaydi. Mijozlarga xizmat ko'rsatish bo'limi xodimlarimiz tajribali, professional va 8 lug traktor g'ildirak halqalari. Sizga sotib olishdan oldin maslahat kerak bo'lsa yoki sotib olingandan keyin keyingi xizmat kerak bo'lsa — ahamiyati yo'q, biz sizga tez va ishonchli xizmat ko'rsatamiz, shunda siz hech qanday tashvishga sabab bo'lmaysiz.Agar muammoni topgan bo'lsangiz, men bilan tez orada bog'laning!
8-donali traktor disklari
8-donali traktor disklari bo'ylab eng yaxshi takliflarni qayerda topish mumkin

8-donali traktor disklarining eng ommabop uslublari

8-donali traktor disklarida uchraydigan umumiy muammolar va ularni hal etish usullari

8-donali traktor disklarining eng yaxshi brendalri
Why choose YAOLILAI 8-donali traktor disklari?
Innovatsion ishlab chiqarish jamoasi:
Shaxsiy va xususiy xizmatlar:
Kuchli sifat nazorati:
Professonal mijoz xizmati:
Bog'liq mahsulot kategoriyalari
Kerakli narsangizni topolmayapsizmi?
Hozir taklif so'rang
Mavjud mahsulotlar yuzasidan maslahatlarimizdan foydalaning.Bog'lanish