…">
,需要通过父级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);
}
});
})();
Jednym z najlepszych kroków, jakie możesz podjąć, aby ulepszyć styl i wydajność swojego samochodu, jest przejście na nowy zestaw koł. kołowych obramowań wybór idealnych koł może być przyjemnym i satysfakcjonującym procesem. Dostępne w licznych rozmiarach, kolorach i projektach w JC Whitney, niewielu daje ci szansę na spersonalizowanie swojego pojazdu w sposób opłacalny jak reflektory. Wielu miłośników samochodów woli 20-calowe koła na swoim pojazdzie. Te koła YAOLILAI są szczególnie popularne, ponieważ nadają elegancki wygląd, który jest wciąż subtelny i nie przesadzony. Oprócz tego, że idealnie wypełniają przestrzeń między kołami, zestaw piętnastek 52 robi doskonałą robotę łącząc formę z funkcjonalnością dla każdego, kto chce mieć zarówno styl jak i prędkość. świat 20-calowych kół - jeden dla każdego smaku. Spójrz na koła VMB9 marki Velgen, dostępne w kilku kolorach - wybierz ten, który najlepiej pasuje do Twojego samochodu. W międzyczasie, koło TSW Bathurst z technologią DST Hybris oferuje zwiększoną wydajność z zakresu kolorów w czarnym lub srebrnym, co podkreśla sportowy i stylowy wygląd. Nie tylko masz wybór kół odpowiednich rozmiaru i typu, ale nigdy wcześniej nie było takiej możliwości dostosowywania, jeśli chodzi o wyrażanie swojej osobowości za pomocą modyfikacji dla entuzjastów samochodów! Od wyboru kolorów i pokryć, po logo itp., istnieje tyle opcji, które pozwalają zrobić zestaw felg naprawdę unikalnym. Sklepy internetowe z akcesoriami samochodowymi oferują idealne, przyjazne portfelowi rozwiązanie dla tych, którzy chcą dostać dobrej jakości koła bez wydawania na nie dużych pieniędzy. Po prostu przeczytaj opinie oraz wybierz dobrego sprzedawcę; od razu będziesz mógł dostać je w najlepszej cenie. Podczas gdy wciąż mają podobny styl, te felgi z odlewnego aluminium są taną, lekką alternatywą dla tradycyjnego aluminium. Utrzymywanie wyglądu wałek przez jak najdłuższy czas może pomóc w przedłużeniu ich życia. Właściwe czyszczenie jest konieczne, ponieważ brud i brudulia mogą uszkodzić powierzchnię z biegiem czasu. Unikaj używania agresywnych środków czyszczących, ponieważ mogą one uszkodzić wałki. Osłonowe pokrycia dla wałek. Choć folia ochronna dla wałek jest wspaniałym wynalazkiem, ta opcja może nie być najbardziej ekonomiczna dla osób z ograniczonym budżetem lub tych, które mają do czynienia z surowymi warunkami drogowymi. Więc, w sumie, poprawa wałek to łatwy i szybki sposób na ulepszenie zarówno wyglądu, jak i wydajności Twojego samochodu. Zważywszy na to jednak, możesz sprawić, że Twoje wałki będą działały dłużej, wybierając je mądrze i dbając o ich konserwację. Dlatego ciesz się możliwością odnowienia swojego samochodu nową parą wałek i jedź po drodze czując się pewnie i fantastycznie! Poza wybraniem odpowiedniego rozmiaru i rodzaju koła YAOLILAI, masz setki możliwości projektowych, które mogą wpłynąć na ukończenie Twojego samochodu. Często jedną z najprostszych metod nadania kół indywidualnego charakteru jest dodanie niemieckiej historii w postaci personalizacji oraz barwności i trwałości: bez wątpienia popularne są powłoki proszkowe odporne na drapania / odłupywanie / uszkodzenia przez UV. Dwukolorowy układ, a nawet wielokolorowy schemat z wykorzystaniem różnych kolorów i tekstur, to idealne rozwiązanie dla tych, którzy chcą być zauważeni. To felgi koła samochodu środek billet może zostać wykonany w taki sposób, aby wyświetlał dowolne te same logo bezpieczeństwa lub firmy i informacje o rozmiarze koła dostępne jako naklejka na kole, czyniąc to jeszcze jedną elegancką metodą, dzięki której możesz nadać własnym felgą wygląd customowy. Korzystając z tej metody, możesz dodać niestandardowy napis lub nawet obrazek Twojego logo bezpośrednio na powierzchnię koła, czyniąc je bardzo unikalnym i niepodobnym do innych decyzji dotyczących zewnętrznej części tych kół. Chociaż nie wszyscy mogą sobie pozwolić na ciągłe aktualizowanie swojego auta, istnieje wiele źródeł, jeśli chodzi o wysokiej jakości koła o średnicy 20 cali. Jeszcze bardziej efektywną strategią jest zakup w sklepach internetowych hurtowni akcesoriów samochodowych, ponieważ większość z nich oferuje agresywne ceny za koła/pokrywy. Upewnij się, że przeczytasz recenzje przed zakupem i sprawdź, czy twój sprzedawca ma dobrą reputację. Jeśli tak, możesz oszczędzić trochę pieniędzy, przechodząc na koło z odlewnego aluminium zamiast droższej opcji z wykuwanej aluminium. Choć one felgi i opony nie oferują tej samej lekkości i eleganckiej jazdy jak ich bardziej prestiżowi odpowiednicy, te również są dostępne w cenie poniżej połowy kosztu tych wyższej klasy. Zalety i wady różnych rozmiarów kół dla Twojego pojazdu. W sumie, to bardzo ogólny przegląd zalet i wad związanych z różnymi rozmiarami kół: koła 16 calowe: Ogólnie najtańsze, te są proste i niezbyt wystrzałowe. Jednak prawdopodobnie nie będą oferować tego samego poziomu wydajności ani wyglądu co większe rozmiary. koła 18-calowe: stalowe felgi złote średnie wśród średnic kołowych, te oferują lepszą wydajność bez zbyt dużej pretensjonalności oraz podstawę, która nie będzie tak droga do zastąpienia, jeśli zostaną uszkodzone. koła 20-calowe: Rozmiar często uważany za optymalny dla tych, którzy chcą wyglądać dobrze i być komfortowi pod względem jakości jazdy i obsługi. Ceny są dalekie od bycia ekonomiczne, ale mają dobrą równowagę między wydajnością a atrakcyjnością. Po zakupie eleganckiego kompletu felg o średnicy 20 cali ważne jest, aby prawidłowo je przechowywać — w przeciwnym razie nowe ozdoby mogą stracić blask już po kilku miesiącach. Kontynuuj czytanie i zapoznaj się z poradami ekspertów dotyczącymi utrzymania Twoich felg w doskonałej kondycji. Regularne czyszczenie felg: Może się to wydawać oczywiste, ale regularne czyszczenie felg jest niezbędne, aby usunąć brud, kurz i pył hamulcowy, które z czasem mogą zniszczyć powłokę. Unikaj agresywnych środków czyszczących: Do czyszczenia felg używaj łagodnego mydła i wody, a nie środków o działaniu silnym, które mogą potencjalnie zadrasać powłokę. Jeśli mieszkasz w regionie o surowej pogodzie, rozważ zakup pokryw kół lub powłok ochronnych, które będą chronić Twoje koła przed warunkami zimowymi i deszczem. Regularne kontrole: Sprawdzaj wszystkie dostosowane obręcze koła swojego przyczepnego samochodu dostawczego do koni w ramach rutynowej kontroli pod kątem oznak zużycia lub uszkodzeń. Wczesne wykrycie może zapobiec rozprzestrzenianiu się uszkodzenia do stanu bardziej poważnego. Oferujemy szeroką gamę usług specjalnie dostosowanych do indywidualnych potrzeb każdego klienta. Możemy stworzyć felgi o średnicy 20 cali dopasowane do Twojego osobistego stylu, preferencji oraz specyfikacji. Nasi kompetentni, dobrze wykształceni, przyjacielscy i pomocni pracownicy obsługi klienta zajmują się felgami o średnicy 20 cali. Niezależnie od tego, czy chodzi o konsultację przed zakupem, czy wsparcie po zakupie, zapewniamy szybką i wysokiej jakości obsługę, dzięki czemu nie musisz się niczym martwić. Nasz zmotywowany zespół badań i rozwoju (R&D) zajmujący się felgami o średnicy 20 cali stale bada nowe materiały, techniki i projekty. Dzięki temu jesteśmy w stanie szybko reagować na zmiany popytu i trendy rynkowe, oferując klientom najnowocześniejsze produkty ze stalowych pierścieni, które najlepiej odpowiadają ich potrzebom. Zobowiązujemy się do przestrzegania wysokich standardów jakości felg o średnicy 20 cali. Starannie monitorujemy każdy etap procesu produkcyjnego, począwszy od wyboru surowców. Każde stalowe pierścienie poddawane są wielokrotnym kontrolom, aby zapewnić ich wytrzymałość, trwałość oraz precyzyjne wymiary. Oferujemy gwarancję jakości, na którą można polegać.Skontaktuj się ze mną natychmiast, jeśli napotkasz problem!
kola 20 calowe
Unikalne opcje projektowe dla Twojego pojazdu

Jak znaleźć wysokiej jakości koła w ramach budżetu

Zalety i wady rozmiaru kół dla Twoich pojazdów

Wskazówki dotyczące utrzymania nowego wyglądu felg
Why choose YAOLILAI kola 20 calowe?
Personalizowane i dostosowane usługi:
Profesjonalna obsługa klienta:
Innowacyjny zespół R&D:
Ścisła kontrola jakości:
Nie możesz znaleźć tego, czego szukasz?
Poproś o wycenę teraz
Skontaktuj się z naszymi konsultantami w sprawie dostępności innych produktów.Skontaktuj się z nami