(function(){ class SPZCustomNetworkDetection extends SPZ.BaseElement { constructor(element) { super(element); this.payResult = null; } isLayoutSupported(layout) { return layout === SPZCore.Layout.LOGIC; } mountCallback(){ this.addNetWorkListener(); const bg = document.querySelector('.network_wrapper'); bg.onclick = function(e){ e.stopPropagation(); } } addNetWorkListener(){ window.addEventListener('online', () => { console.warn('[network online]'); const box = document.getElementById('network_tip_box'); SPZ.whenApiDefined(box).then(apis=>{ apis.close(); window?.currentVideoPlayer?.play(); }) }); window.addEventListener('offline', () => { console.warn('[network offline]'); const box = document.getElementById('network_tip_box'); SPZ.whenApiDefined(box).then(apis=>{ apis.open(); window?.currentVideoPlayer?.pause(); }) }); } } SPZ.defineElement('spz-custom-network-detection', SPZCustomNetworkDetection); })()
You have no internet connection
Please check your internetconnection and try again
${(function(){ const get_random_six_digits = () => { return Math.random().toString().slice(-6) }; const wholesale_enabled = false; const setting_product_image_display = "150%"; const product_image = data.image; const secondary_image = data.secondImage; const image_width = product_image.width; let image_height = product_image.height; if(setting_product_image_display == '100%'){ image_height = image_width }else if(setting_product_image_display == '150%'){ image_height = image_width * 1.5; }; const product_image_hover_on = true && !!secondary_image.src; const has_save_label = false && ((+data.compare_at_price) > (+data.price)); const is_single_variant = data.variants.length == 1; const min_price_variant_href = (data.min_price_variant && data.min_price_variant.available) ? data.min_price_variant.withinUrl : data.withinUrl; const retail_price_max = data.retail_price_max || data.compare_at_price_max; const THUMBNAILS_MAX_SIZE = 3; const thumbnails = data.thumbVariants.slice(0, THUMBNAILS_MAX_SIZE); const image_wrap_id = 'image_wrap_' + get_random_six_digits(); const image_carousel_id = 'image_carousel_' + get_random_six_digits(); const thumbnails_selector_id = 'thumbnails_selector_' + get_random_six_digits(); const form_id = 'form_' + get_random_six_digits(); const mixed_wholesale = data.mixed_wholesale; return `
${ data.available ? `` : "Sold out" }
Mixed Lot
${data.title}
${ data.price_min != data.price_max ? `from
` : `
` }
+${data.remainInvisibleThumbCount}
` })()}
Log in
Create an account
${data.data && data.data.count}
History
More links
${(function(){ const formatLinks = (links) => { return links.map(link => { link.tag = tags[link.title.toUpperCase()] || {}; link.target_attr = link.target == '_blank' ? 'target="_blank"' : ''; link.href_attr = link.url ? `href="${link.url}"` : ''; if(link.children && link.children.length){ link.children = formatLinks(link.children); } return link; }) }; const tags = "{}"; let linkList = [ { id: 81361773, title: "History", url: "\/pages\/short-recently", target: "", levels: 0, product0: { id: (null) }, children: [ ] }, ].slice(offset); linkList = formatLinks(linkList); const hasChild = linkList.some(link => !!(link.children && link.children.length || link.product0.id)); return `
${link.title}
${link.tag.label}
${second_link.title}
${second_link.tag.label}
${third_links.title}
${third_links.tag.label}
${link.title}
${link.tag.label}
` })()}
History
${(function(){ if (data === undefined || typeof data !== 'string' || data == '') return '
'; const keyword = encodeURIComponent(data); return `
View more
Your search for '${data}' did not yield any results.
` })()}
History
Log in
Create an account
(function(){ let w = window.innerWidth; function setHeaderCssVar() { const headerEle = document.getElementById('shoplaza-section-header'); if(!headerEle){ return }; document.body.style.setProperty('--window-height', `${window.innerHeight}px`); document.body.style.setProperty('--header-height', `${headerEle.clientHeight}px`); const mdScorllHideEle = headerEle.querySelector('.header__mobile .header__scroll_hide'); if (mdScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-md', `${mdScorllHideEle.clientHeight}px`); } const pcScorllHideEle = headerEle.querySelector('.header__desktop .header__scroll_hide'); if (pcScorllHideEle) { document.body.style.setProperty('--header-scroll-hide-height-pc', `${pcScorllHideEle.clientHeight}px`); } } function handlResize() { if(w == window.innerWidth){return}; w = window.innerWidth; setHeaderCssVar(); }; function init(){ setHeaderCssVar(); window.removeEventListener('resize', window._theme_header_listener) window._theme_header_listener = handlResize; window.addEventListener('resize', window._theme_header_listener); } init(); })();
Play
${Array(data.total || 0).fill().map((val, idx) => idx).map((val, idx) => `
`).join('')}
Recommended
View more >>
View more
Apocalypse: Build a New World with My Fat
from
$0.00
$9.90
The Ice-Cold Landlady
from
$0.00
$9.90
Divine Combat: I Slay Gods with Tang Poems
from
$0.00
$9.90
Anti-Exploitation Platform System
from
$0.00
$9.90
Misguided Love: The Mu's Romance
from
$0.00
$9.90
Sugar-Coated Love Melody
from
$0.00
$9.90
The Tsundere Roommate I Hate Is My Online Love!
from
$0.00
$9.90
The Moment Dreams Shatter
from
$0.00
$9.90
Reborn in the 80s: A Total Turnaround
from
$0.00
$9.90
Drama List
Commuter Horror World: I Own a Subway
from
$0.00
$9.90
King of the Undead
from
$0.00
$9.90
Cyber Cultivation: 5000 Years
from
$0.00
$9.90
1978 Comeback: I Rise to Tycoon
from
$0.00
$9.90
Doomsday Live: Only I Know the Ending
from
$0.00
$9.90
Bone Seer of the Forbidden Zone
from
$0.00
$9.90
Grant Your Wish
from
$0.00
$9.90
Cold Wife? Secretly a Hopeless Romantic!
from
$0.00
$9.90
Commuter Horror World: I Own a Subway
from
$0.00
$9.90
King of the Undead
from
$0.00
$9.90
Cyber Cultivation: 5000 Years
from
$0.00
$9.90
1978 Comeback: I Rise to Tycoon
from
$0.00
$9.90
Doomsday Live: Only I Know the Ending
from
$0.00
$9.90
Bone Seer of the Forbidden Zone
from
$0.00
$9.90
Grant Your Wish
from
$0.00
$9.90
Cold Wife? Secretly a Hopeless Romantic!
from
$0.00
$9.90
Anti-Exploitation Platform System
from
$0.00
$9.90
My Tang Dynasty Babe
from
$0.00
$9.90
View more
(function () { class SPZCutomRightsManager extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout === 'logic'; } buildCallback() { this.setupAction_(); } setupAction_() { this.registerAction('removeSignatureQueryParams', () => { window.keepRightsManager?.removeSignatureQueryParams(); }); } } SPZ.defineElement('spz-custom-rights-manager', SPZCutomRightsManager); })();
(function(){ class SPZCustomContinueSubscript extends SPZ.BaseElement { constructor(element) { super(element); this.payResult = null; } isLayoutSupported(layout) { return layout === SPZCore.Layout.LOGIC; } buildCallback(){ this.registerAction('update', (invocation) => { this.updateSubscript(); }); } updateSubscript(){ async function showSubscript(){ const imageDoms =[]; const productIds = []; const listItems = document.querySelectorAll('.recently_view_carousel .product-snippet__img-link>spz-img:not(:has(.custom_subscript_item))'); /* console.info('[listItems]', listItems); */ listItems.forEach(item=>{ productIds.push(item.getAttribute('product-id')); imageDoms.push(item); }); if(productIds.length ==0) return; let result = []; try{ const res = await fetch(location.origin+"/apps/best-short/api/v1/subscript", { method:"POST", body: JSON.stringify({ type:'skit', resource_ids: productIds })}) .then(res=>res.json()); result = res?.data || []; }catch(e){ console.warn('[subscript get error]', e); } result.forEach(ele=>{ const index = productIds.indexOf(ele.id); if(index>=0 && ele.styles?.length > 0){ const listItem = imageDoms[index]; ele.styles.forEach(style=>{ const _item = document.createElement('div'); _item.classList.add('custom_subscript_item'); _item.classList.add('custom_position_'+style.position); _item.classList.add(style.icon); const _span = document.createElement('span'); _span.classList.add('custom_subscript_item_text'); _span.innerHTML = style.content; _item.appendChild(_span); listItem.appendChild(_item.cloneNode(true)); }) } }) } setTimeout(showSubscript, 200); } } SPZ.defineElement('spz-custom-continue-watch-subscript', SPZCustomContinueSubscript); })()
(function(){ class SPZCustomSearchPrevSubscript extends SPZ.BaseElement { constructor(element) { super(element); this.payResult = null; } isLayoutSupported(layout) { return layout === SPZCore.Layout.LOGIC; } buildCallback(){ this.registerAction('update', (invocation) => { this.updateSubscript(); }); } updateSubscript(){ async function showSubscript(){ const imageDoms =[]; const productIds = []; const listItems = document.querySelectorAll('.header__search_product_list>.shoplazza-product-snippet'); /* console.info('[listItems]', listItems); */ listItems.forEach(item=>{ const img = item.querySelector('spz-img.product-snippet__img:not(:has(.custom_subscript_item))'); if(img){ imageDoms.push(img); productIds.push(item.getAttribute('product-id')); } }); if(productIds.length ==0) return; let result = []; try{ const res = await fetch(location.origin+"/apps/best-short/api/v1/subscript", { method:"POST", body: JSON.stringify({ type:'skit', resource_ids: productIds })}) .then(res=>res.json()); result = res?.data || []; }catch(e){ console.warn('[subscript get error]', e); } result.forEach(ele=>{ const index = productIds.indexOf(ele.id); if(index>=0 && ele.styles?.length > 0){ const listItem = imageDoms[index]; ele.styles.forEach(style=>{ const _item = document.createElement('div'); _item.classList.add('custom_subscript_item'); _item.classList.add('custom_position_'+style.position); _item.classList.add(style.icon); const _span = document.createElement('span'); _span.classList.add('custom_subscript_item_text'); _span.innerHTML = style.content; _item.appendChild(_span); listItem.appendChild(_item.cloneNode(true)); }) } }) } setTimeout(showSubscript, 200); } } SPZ.defineElement('spz-custom-search-prev-subscript', SPZCustomSearchPrevSubscript); })()
Unlock More Deals with Your Email
Your email
👇 Only 1 step to Get Your Discount!
Submit
Skip to Watch
const emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; class EmailModal { /** * 邮箱类型 * email_missing: 邮箱缺失 * email_invalid: 邮箱无效 * email_success: 邮箱正确 */ emailType = 'email_missing'; constructor() { if(!this.initQueryParams()) return; this.initDOM(); this.getModalConfig(); this.initInputBlur(); this.initEmailBtnClick(); this.initCloseBtnClick(); this.initSkipBtnClick(); } initQueryParams() { const queryParams = new URLSearchParams(window.location.search); this.utmSource = queryParams.get('utm_source'); this.utmCampaign = queryParams.get('utm_campaign'); this.templateName = "index"; if(this.utmSource === 'fb' || queryParams.has('fbclid')) return true; return false; } initDOM() { this.emailBox = document.querySelector('#custom_solution_modal_email'); this.emailInputBox = this.emailBox.querySelector('.content-box-input'); this.emailInput = this.emailBox.querySelector('.content-box-input .input'); this.errorText = this.emailBox.querySelector('.content-box-input .error-text'); this.emailBtn = this.emailBox.querySelector('.content-box-btn'); this.closeBtn = this.emailBox.querySelector('.content-box-close'); this.skipBtn = this.emailBox.querySelector('.skip-box-btn'); } initBreforeUnload() { this.beforeUnloadFn = (e) => { e.preventDefault(); e.returnValue = ''; this.popupClickEvent('ad_email_leave'); return ''; } window.addEventListener('beforeunload', this.beforeUnloadFn); } initCloseBtnClick() { this.closeBtn.addEventListener('click', () => { this.closeModal(); this.popupClickEvent('ad_email_modal_close'); }) } initSkipBtnClick() { this.skipBtn.addEventListener('click', () => { this.closeModal(); this.popupClickEvent('ad_email_modal_skip'); }) } initInputBlur() { this.emailInput.addEventListener('blur', () => { const email = this.emailInput.value.trim(); if (emailRegex.test(email)) { this.emailInputBox.classList.remove('error'); this.emailBtn.removeAttribute('disabled'); this.emailType = 'email_success'; } else { if(email){ this.errorText.textContent = 'Please enter a valid Email'; this.emailType = 'email_invalid'; }else{ this.errorText.textContent = 'Please enter your Email'; this.emailType = 'email_missing'; } this.emailInputBox.classList.add('error'); this.emailBtn.setAttribute('disabled', 'disabled'); } this.popupClickEvent('ad_email_click'); }) } initEmailBtnClick() { this.emailBtn.addEventListener('click', async(e) => { if(this.emailBtn.getAttribute('disabled')) return; this.popupClickEvent('ad_email_continue_click'); this.emailBtn.setAttribute('disabled', 'disabled'); const email = this.emailInput.value.trim(); try { this.resumeVideo(); await this.bindEmail(email); this.closeModal(); this.emailBtn.removeAttribute('disabled'); this.popupClickEvent('ad_video_page_enter_binding'); } catch (error) { this.emailBtn.removeAttribute('disabled'); this.pauseVideo(); } }) } pauseVideo() { console.log('pauseVideo'); const playerReadyFn = () => { if(this.templateName === 'product' && window.currentVideoPlayer){ window.currentVideoPlayer.stop(); window.currentVideoPlayer.toggleGestureDisabled(true); } window.removeEventListener('BSPlayerReady', playerReadyFn); } playerReadyFn(); window.addEventListener('BSPlayerReady', playerReadyFn); } resumeVideo() { if(this.templateName === 'product' && window.currentVideoPlayer){ window.currentVideoPlayer.play(); window.currentVideoPlayer.toggleGestureDisabled(false); } } async getModalConfig() { const channel = 'facebook'; const res = await fetch(`/apps/best-short/api/v1/customer/information-collection/${channel}`); if(!res.ok) return; const data = await res.json(); const templateName = this.templateName; if(data.information && data.information.nick_name) return; if(data.config){ const config = data.config; if((templateName === 'index' && config.home) || (templateName === 'product' && config.preview_page)){ this.openModal(); } } } async bindEmail() { const email = this.emailInput.value.trim(); const res = await fetch('/apps/best-short/api/v1/customer/email_bind', { method: 'POST', body: JSON.stringify({ email: email }), }); if(!res.ok){ const data = await res.json(); window.C_APPS_COMMON.plugin_toast.show({ content: data.error || 'The email you entered has been bound', duration: 3000, }) return Promise.reject(); } localStorage.setItem('bind_modal_email', email); } openModal() { SPZ.whenApiDefined(this.emailBox).then(apis => { apis.open(); }) this.popuplmpressionEvent(); this.timer =setTimeout(() => { // 30s后如果邮箱输入框没有输入内容,则触发超时事件 !this.errorText.textContent && this.popupClickEvent('ad_email_modal_timeout'); }, 30000); this.pauseVideo(); } closeModal() { SPZ.whenApiDefined(this.emailBox).then(apis => { apis.close(); }) const templateName = this.templateName; if(templateName === 'index'){ this.popupClickEvent('ad_entry_count_home'); }else if(templateName === 'product'){ this.popupClickEvent('ad_entry_count_play'); } this.timer && clearTimeout(this.timer); this.resumeVideo(); } /** * 信息搜集弹窗曝光 */ popuplmpressionEvent() { const eventInfo = { common_dj_event_name: "ad_email_modal_show", ad_source: this.utmSource || '', campaign_id: this.utmCampaign || '', page_type: this.templateName, skit_user_id: window.csTracker?.getSkitUid?.(), } window.csTracker.track('ad_email_modal_show', eventInfo); window.csTracker.track('function_expose', { event_name: 'function_expose', event_type: 'popup_expose', event_info: JSON.stringify(eventInfo), }, ['sa']); } /** * 信息搜集弹窗点击 */ popupClickEvent(actionType) { actionType = actionType || ''; const eventInfo = { common_dj_event_name: "ad_email_modal_click", ad_source: this.utmSource || '', campaign_id: this.utmCampaign || '', page_type: this.templateName, email_type: this.emailType, action_type: actionType, skit_user_id: window.csTracker?.getSkitUid?.(), } window.csTracker.track('ad_email_modal_click', eventInfo); window.csTracker.track('function_click', { event_name: 'function_click', event_type: 'popup_click', event_info: JSON.stringify(eventInfo), }, ['sa']); } } new EmailModal();