folding box ay may ilang nakakagulat na serpentine line upang palakasin ang kanilang rigidity. Ang mga corrugated boxes ay napakalakas dahil sa mga wave na ito...">
,需要通过父级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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
phone: nodeText,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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')) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: content,
},
}, '*');
_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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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)) {
window.postMessage({
type: 'SHOPS_CONTACT_TRACK',
data: {
email: 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);
}
});
})();
Ang mga kahon ng Shunho Corrugated ay kamatayan. Regular foldable na kahon lamang may ilang fancy serpentine linya upang palakasin ang kanilang kakayahan. Ang mga kahong corrugated ay sobrang malakas dahil sa mga linya na ito at ito ang dahilan kung bakit sila ay espesyal na nilikha upang siguraduhin na lahat ng packaging ay gumagana habang nagdadala ng isang bagay. Ngayon nais naming ipaliwanag kung bakit ang aming mga kahon ng corrugated ang pinakamainam sa tatlong sanhi. Isang matatag na kahon para sa lahat ng iyong mga goodies safe kung ikaw ay pumupunta sa isang mail opsyon. Shunho Corrugated cartons boxes ay napakalakas at perpekto para sa pagpapadala. Ang kardbord ay may kulob na linya na naglalaro ng papel upang protektahan ang nasa loob, mula sa pagsisira o pinsala. Ito ay ibig sabihin na lahat ng nasa loob ay mananatiling nasa maayos na kalagayan kapag dating ang iyong pakete. Sila ay maliit at kompakt din kung kailangan mong ipadala maraming bagay. Kaya't sila ay isang paborito ng mga tao at negosyo na nagpapadala ng mga bagay sa pamamagitan ng sistema ng korreho. May negosyo ba kayo? Kung sumagot kayo ng "oo" sa itinanim na tanong, maaaring maging makabuluhang tulong ang mga kardbord na kutsarita ng Shunho. Nag-aalok sila ng malawak na pilihan at pakikisama sa pamamagitan ng ekstremong pagpapakita ng perpekto sa lahat ng inyong produkto. Kaya hindi na magkakaroon ng pagkakataon na maramdaman nila na pinapabayaan dahil hindi nakakapasok sa kategorya. Simpleng maayos din silang ilagay at imbak, gumagamit lamang ng maliit na puwang sa inyong tindahan o bodega. Maibabalik din sila, na mabuti para sa kapaligiran. Ang mga kardbord na kutsarita ng Shunho ay isa sa mga pinakamainit na paraan upang ipakita sa inyong mga kliyente na binigyan mo ng isipan ang Inang Daigdig. kahon ng Papel ay maaaring talagang makatulong. Nag-ofer sila ng malawak na seleksyon at pakikisama ang lahat ng iyong produkto sa ekstremong perfeksyon. Kaya hindi na magkakaroon ng kansya na maramdaman na pinapabayaan dahil hindi nakakapasok sa kategorya. Simpleng madaling magtumpa at mag-imbestoryo, Kumukuha lamang ng mas kaunting puwesto sa iyong tindahan o entrepiso. Maaari ding maidaurukan ito, na mabuti para sa kapaligiran. Ang mga kahon ng Shunho Corrugated ay isa sa mga pinakamainam na paraan upang ipakita sa iyong mga kliyente na binigyan mo ng isip ang Inang Daigdig. Mga Benepisyo ng Paggamit ng Mga Shunho Corrugated Boxes para sa Pagtaas ng Savings at Paglipat ng Oras Ang mga ito ay murang gawin, kahit na ang mga kosztong pang-supply ng iyong packaging ay hindi magiging sanhi ng pagkabigo ng iyong presyo. Ito ay napakarami ng tulong sa budget. Pangalawa, mabilis silang maayos, maaari mong gawin ang mga ito sa loob ng ilang segundo lamang. Nagbibigay ito ng pagkakataon mong mas mabilis pakipag-maayos ng mga produkto at madali mong ipadala sa mga customer. Makikitaan nila ang pagpapadala nang walang pinsala dahil malakas sila. Ibig sabihin nito ay wala nang balik-pluwang at mga nagagalit na mga customer. Na mas mababa ang problema para sa'yo upang makatuon sa iba pang mas mahalagang bahagi ng iyong negosyo. Paano namin malalaman kung ito ay tamang uri ng corrugated box, pero maaari mong iwanan sa amin. Dapat muna mong isipin ang sukat ng iyong produkto. Maaari mo ding kuttin ang isang bahagi mula sa cardboard box—mas malaki maliit basta mas maganda kaysa sa produktong iyong gagamitin para makaiwas ng pagdudulot ng pinsala gamit ang bubble wrap o packing peanuts. Ang padding na ito ang nagpapahintulot na maging ligtas ang mga item mo habang inuusad. Ang pangalawang factor ay ang timbang ng iyong produkto, kung mabigat ito kailangan mong gamitin ang mas matibay na kahon na maaaring supurhin ang kanyang sariling mas mahina ng mga pader. Sa wakas, pumili ng estilo ng kahon na gusto mo—may standard square carton ba o maaari bang isang mahaba at maikling isa? Maraming mga opsyon ang available sa Shunho kaya't makakahanap ka ng tamang isa para sa mga pangangailangan mo! Bago tayo umuwi pa, ipaguhit muna natin ang aming planeta. Ang pinakamainam sa Shunho corrugated box ng Pagpapapak tungkol dito ay fantastiko rin sa kabila ng kapaligiran, dahil dito ay may malaking relevante na balita tungkol sa paggawa; kaya't madaling ma-recycle ito pagkatapos mong gamitin sila. Ito ay nangangahulugan na mas kaunti ang mga puno na titimbang at mas kaunti ang basura na pupunta sa basurahan. Ang katotohanan na ma-decompose nila ay maaaring maging kasiraan din dahil magiging daanan siglo tulad ng plastik. Iwasan ang pagsasawi ng Daigdig at bawasan ang basura sa pamamagitan ng paggamit ng corrugated boxes. Ang karamihan sa mga customer ay mula sa mga nangungunang negosyo ng corrugated boxes sa buong mundo May sertipiko ang mga corrugated boxes para sa FSC, REACH, FDA 21 CFR 176.170, (EU) No. 10/2011, TUV OK COMPOST HOME, RECYCLABLE, ISO 9001/14001/45001, CNAS, PATENTS at iba pang sertipiko para sa pagprotekta sa kapaligiran Magagamit ang mga corrugated boxes para sa Ingles, Espanyol at Hapones. Higit sa 20 taon ng karanasan sa foreign trade. Ang kakayahang mag-produce ng corrugated boxes gamit ang laser paper ay maaaring umabot sa 200,000 tonelada.Mga kahon ng gawing
Ang Mga Benepito ng Paggamit ng mga Corrugated Boxes para sa Negosyo Mo

Paano Makakatulong sa Iyo ang mga Corrugated Boxes na Magipon ng Pera at Oras

Isang Gabay para sa mga Baguhan sa Paggawa ng Tamang Pagpili ng Corrugated Box

Ang Mga Environmental na Kabutihan ng Paggamit ng mga Corrugated Boxes para sa Packaging
Why choose Shunho
Mga kahon ng gawing?
Lakas ng Kliyente
Sertipiko ng Kalidad
Mahusay na koponan
Lakas ng Kumpanya
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