{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
free FREE

Change Your Zip Code

Inventory information and delivery speeds may vary for different locations.

Location History

{{email ? __('Got it!') : __('Restock Alert')}}

We will notify you by email when the item back in stock.

Cancel
Yami

Jingdong book

Html+JavaScript网页制作与开发完全学习手册(附光盘+完全学习手册)

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Html+JavaScript网页制作与开发完全学习手册(附光盘+完全学习手册)

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
Ends in
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
Sale ends in
Sale will starts after Sale ends in
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) Details
Best before

Currently unavailable.

We don't know when or if this item will be back in stock.

Unavailable in your area.
Sold Out

Details

Full product details
Content Description

《Html+JavaScript网页制作与开发完全学习手册》定位于网页制作与开发初中级读者,全面介绍了使用HTML、JavaScript 进行网页设计和制作的各方面内容和技巧。《Html+JavaScript网页制作与开发完全学习手册》不是单纯的讲解语法,而是通过一个个鲜活、典型的实战来达到学以致用的目的,每个语法都有相应的实例,每章后面又配有综合小实例,力求达到理论知识与实践操作完美结合的效果。
《Html+JavaScript网页制作与开发完全学习手册》可作为高校院校相关专业的教材,也可供从事网页设计与制作、网站开发、网站编程的业内人员参考。
Catalogue

第1篇 HTML技术
第1章 HTML入门
1.1 什么是HTML
1.1.1 HTML的特点
1.1.2 HTML的历史
1.2 HTML文件的基本结构
1.2.1 HTML文件结构
1.2.2 编写HTML文件注意事
1.3 HTML文件编写方法
1.3.1 使用记事本编写HTML页面
1.3.2 使用Dreamweaver编写HTML文件
1.4 网页设计与开发的过程
1.4.1 明确网站定位
1.4.2 收集信息和素材
1.4.3 规划栏目结构
1.4.4 设计页面图像
1.4.5 制作页面
1.4.6 实现后台功能
1.4.7 网站的测试与发布
第2章 HTML网页基本标记的使用
2.1 HTML页面主体常用设置
2.1.1 定义网页背景色:bgcolor
2.1.2 设置背景图片:background
2.1.3 设置文字颜色:text
2.1.4 设置链接文字属性
2.1.5 设置页面边距
2.2 页面头部元素和
2.3 页面标题元素<br>2.4 元信息元素<meta><br>2.4.1 设置页面关键词<br>2.4.2 设置页面主要内容<br>2.4.3 定义页面的搜索方式<br>2.4.4 定义编辑工具<br>2.4.5 定义页面的作者信息<br>2.4.6 定义网页文字及语言<br>2.4.7 定义页面的跳转<br>2.4.8 定义页面的版权信息<br>2.5 脚本元素<script><br>2.6 创建样式元素<style><br>2.7 链接元素<link><br>2.8 综合实战——创建基本的HTML文件<br>第3章 用HTML设置文字与段落格式<br>3.1 插入其他标记<br>3.1.1 输入空格符号<br>3.1.2 输入特殊符号<br>3.2 设置文字的格式<br>3.2.1 设置字体:face<br>3.2.2 设置字号:size<br>3.2.3 设置文字颜色:color<br>3.2.4 设置粗体、斜体、下划线:b、strong、em、u<br>3.2.5 设置上标与下标:sup、sub<br>3.2.6 多种标题样式的使用: <h1>~<h6><br>3.3 设置段落的格式<br>3.3.1 给文字进行分段:p<br>3.3.2 段落的对齐属性:align<br>3.3.3 不换行标记:nobr<br>3.3.4 换行标记:br<br>3.4 水平线标记<br>3.4.1 插入水平线:hr<br>3.4.2 设置水平线宽度与高度属性:width、size<br>3.4.3 设置水平线的颜色:color<br>3.4.4 设置水平线的对齐方式:align<br>3.4.5 水平线去掉阴影<br>3.5 设置滚动文字<br>3.5.1 滚动文字标签——marquee<br>3.5.2 滚动方向属性——direction<br>3.5.3 滚动方式属性——behavior<br>3.5.4 滚动速度属性——scrollamount<br>3.5.5 滚动延迟属性——scrolldelay<br>3.5.6 滚动循环属性——loop<br>3.5.7 滚动范围属性——width、height<br>3.5.8 滚动背景颜色属性——bgcolor<br>3.5.9 滚动空间属性——hspace、vspace<br>3.6 综合实战——设置页面文本及段落<br>第4章 用HTML创建精彩的图像和多媒体页面<br>4.1 网页中常见的图像格式<br>4.2 插入图像并设置图像属性<br>4.2.1 图像标记:img<br>4.2.2 设置图像高度:height<br>4.2.3 设置图像宽度:width<br>4.2.4 设置图像的边框:border<br>4.2.5 设置图像水平间距:hspace<br>4.2.6 设置图像垂直间距:vspace<br>4.2.7 设置图像的对齐方式:align<br>4.2.8 设置图像的替代文字:alt<br>4.3 添加多媒体文件<br>4.4 添加背景音乐<br>4.4.1 设置背景音乐:bgsound<br>4.4.2 设置循环播放次数:loop<br>4.5 综合实战<br>4.5.1 实战——创建多媒体网页<br>4.5.2 实战——创建图文混合排版网页<br>第5章 用HTML创建超链接<br>5.1 链接和路径<br>5.1.1 超链接的基本概念<br>5.1.2 路径URL<br>5.1.3 HTTP路径<br>5.1.4 FTP路径<br>5.1.5 邮件路径<br>5.2 链接元素<br>5.2.1 指定路径href<br>5.2.2 显示链接目标属性target<br>5.2.3 链接的热键属性accesskey<br>5.3 创建图像的超链接<br>5.3.1 设置图像超链接<br>5.3.2 设置图像热区链接<br>5.4 创建锚点链接<br>5.4.1 创建锚点<br>5.4.2 链接到页面不同位置的锚点链接<br>5.5 下载文件链接<br>5.6 综合实战——给网页添加链接<br>第6章 使用HTML创建强大的表格<br>6.1 创建并设置表格属性<br>6.1.1 表格的基本标记:table、tr、td<br>6.1.2 表格宽度和高度:width、height<br>6.1.3 表格的标题:caption<br>6.1.4 表格的表头:th<br>6.1.5 表格对齐方式:align<br>6.1.6 表格的边框宽度:border<br>6.1.7 表格边框颜色:bordercolor<br>6.1.8 单元格间距:cellspacing<br>6.1.9 单元格边距:cellpadding<br>6.1.10 表格的背景色:bgcolor<br>6.1.11 表格的背景图像:background<br>6.2 表格的结构标记<br>6.2.1 设计表头样式:thead<br>6.2.2 设计表主体样式:tbody<br>6.2.3 设计表尾样式:tfoot<br>6.3 综合实战——使用表格排版网页<br>第7章 创建框架结构网页<br>7.1 窗口框架简介<br>7.2 设置框架集标记frameset属性<br>7.2.1 水平分割窗口:rows<br>7.2.2 垂直分割窗口:cols<br>7.2.3 嵌套分割窗口<br>7.2.4 设置边框:frameborder<br>7.2.5 框架的边框宽度:framespacing<br>7.2.6 框架的边框颜色:bordercolor<br>7.3 设置框架标记frame属性<br>7.3.1 框架页面源文件:src<br>7.3.2 框架名称:name<br>7.3.3 调整框架窗口的尺寸:noresize<br>7.3.3 框架边框与页面内容的水平边距:marginwidth<br>7.3.5 框架边框与页面内容的垂直边距:marginheight<br>7.3.6 设置框架滚动条显示:scrolling<br>7.3.7 不支持框架标记:noframes<br>7.4 浮动框架<br>7.4.1 浮动框架的页面源文件:src<br>7.4.2 浮动框架的宽度和高度:width和height<br>7.4.3 浮动框架对齐方式:align<br>7.4.4 设置浮动框架是否显示滚动条:scrolling<br>7.4.5 浮动框架的边框:frameborder<br>7.5 综合实战——创建上方固定、左侧嵌套的框架网页<br>第8章 创建交换式表单<br>8.1 表单元素<form><br>8.1.1 动作属性:action<br>8.1.2 发送数据方式属性method<br>8.1.3 名称属性:name<br>8.1.4 编码方式:enctype<br>8.1.5 目标显示方式:target<br>8.2 表单的控件<input><br>8.2.1 文本域text<br>8.2.2 密码区域password<br>8.2.3 提交按钮submit<br>8.2.4 复位按钮reset<br>8.2.5 图像按钮image<br>8.2.6 单击按钮button<br>8.2.7 复选框checkbox<br>8.2.8 单选按钮radio<br>8.2.9 隐藏区域hidden<br>8.2.10 文件域:file<br>8.2.11 文本区域标记:textarea<br>8.2.12 下拉列表<br>8.2.13 列表项<br>8.3 综合实战——用户注册表单页面实例<br>第9章 列表元素<br>9.1 无序列表元素<ul><br>9.2 有序列表元素<ol><br>9.2.1 项目符号的类型属性type<br>9.2.2 有序列表的起始值属性start<br>9.3 列表条目元素<li><br>9.3.1 项目符号的类型属性type<br>9.3.2 条目编号属性value<br>9.4 定义列表元素<dl><br>9.5 菜单列表标记menu<br>9.6 目录列表dir<br>9.7 列表的嵌套<br>9.8 综合实战<br>9.8.1 实战——文本导航<br>9.8.2 实战——标签式导航<br>9.8.3 实战——竖排导航<br>第10章 HTML 5 入门基础<br>10.1 认识HTML 5<br>10.2 HTML 5与HTML 4的区别<br>10.2.1 HTML 5的语法变化<br>10.2.2 HTML 5中的标记方法<br>10.2.3 HTML 5语法中的3个要点<br>10.2.4 HTML 5与HTML 4在搜索引擎优化的对比<br>10.3 HTML 5新增的元素和废除的元素<br>10.3.1 新增的结构元素<br>10.3.2 新增块级元素<br>10.3.3 新增的行内的语义元素<br>10.3.4 新增的嵌入多媒体元素与交互性元素<br>10.3.5 新增的input元素的类型<br>10.3.6 废除的元素<br>10.4 新增的属性和废除的属性<br>10.4.1 新增的属性<br>10.4.2 废除的属性<br>10.5 创建简单的HTML 5页面<br>10.5.1 HTML 5文档类型<br>10.5.2 字符编码<br>10.5.3 页面语言<br>10.5.4 添加样式表<br>10.5.5 添加JavaScript<br>10.5.6 测试结果<br>第11章 HTML 5的结构<br>11.1 新增的主体结构元素<br>11.1.1 article元素<br>11.1.2 section元素<br>11.1.3 nav元素<br>11.1.4 aside元素<br>11.2 新增的非主体结构元素<br>11.2.1 header元素<br>11.2.2 hgroup元素<br>11.2.3 footer元素<br>11.2.4 address元素<br><br>第2篇 CSS布局<br>第12章 CSS+DIV布局定位基础<br>12.1 网站与Web标准<br>12.1.1 什么是Web标准<br>12.1.2 为什么要建立Web标准<br>12.1.3 怎样改善现有网站<br>12.2 Div标记与Span 标记<br>12.2.1 Div概述<br>12.2.2 Div与Span的区别<br>12.3 表格布局与CSS布局的区别<br>12.3.1 CSS的优势<br>12.3.2 表格布局与CSS布局对比<br>第13章 盒子模型及定位<br>13.1 盒子模型<br>13.1.1 盒子模型的概念<br>13.1.2 border<br>13.1.3 padding<br>13.1.4 margin<br>13.2 盒子的浮动float<br>13.3 盒子的定位<br>13.3.1 绝对定位:absolute<br>13.3.2 固定定位:fixed<br>13.3.3 相对定位:relative<br>13.4 CSS布局理念<br>13.4.1 将页面用div分块<br>13.4.2 设计各块的位置<br>13.4.3 用CSS定位<br>13.5 常见的布局类型<br>13.5.1 使用CSS定位单行单列固定宽度<br>13.5.2 一列自适应<br>13.5.3 两列固定宽度<br>13.5.4 两列宽度自适应<br>13.5.5 三列浮动中间宽度自适应<br><br>第3篇 JavaScript网页特效<br>第14章 JavaScript基础知识<br>14.1 JavaScript简介<br>14.1.1 JavaScript的历史<br>14.1.2 JavaScript特点<br>14.1.3 JavaScript注释<br>14.2 JavaScript的添加方法<br>14.2.1 内部引用<br>14.2.2 外部调用js文件<br>14.2.3 添加到事件中<br>14.3 第一个JavaScript程序<br>14.3.1 预备知识<br>14.3.2 JavaScript编辑器的选择<br>14.3.3 编写Hello World程序<br>14.3.4 浏览器对JavaScript的支持<br>14.4 综合实战——浏览器状态栏显示信息<br>第15章 数据类型和变量<br>15.1 基本数据类型<br>15.1.1 使用字符串型数据<br>15.1.2 使用数值型数据<br>15.1.3 使用布尔型数据<br>15.1.4 使用Undefined和Null类型<br>15.2 复合数据类型<br>15.2.1 常用的内置对象<br>15.2.2 日期对象<br>15.2.3 数学对象<br>15.2.4 字符串对象<br>15.2.5 数组对象<br>15.3 常量<br>15.3.1 常量的种类<br>15.3.2 常量的使用方法<br>15.4 变量<br>15.4.1 变量的含义<br>15.4.2 变量的定义方式<br>15.4.3 变量的命名规则<br>15.4.4 变量的作用范围<br>15.5 综合实战——制作倒计时特效<br>第16章 表达式与运算符<br>16.1 表达式<br>16.2 操作数<br>16.3 运算符介绍<br>16.3.1 运算符<br>16.3.2 操作数的类型<br>16.4 算术运算符<br>16.4.1 加法运算符<br>16.4.2 减法运算符<br>16.4.3 乘法运算符<br>16.4.4 除法运算符<br>16.4.5 取模运算符<br>16.4.6 负号运算符<br>16.4.7 正号运算符<br>16.4.8 递增运算符<br>16.4.9 递减运算符<br>16.5 关系运算符<br>16.5.1 相等运算符<br>16.5.2 等同运算符<br>16.5.3 不等运算符<br>16.5.4 不等同运算符<br>16.5.5 小于运算符<br>16.5.6 大于运算符<br>16.5.7 小于或等于运算符<br>16.5.8 大于或等于运算符<br>16.6 字符串运算符<br>16.7 赋值运算符<br>16.8 逻辑运算符<br>16.8.1 逻辑与运算符<br>16.8.2 逻辑或运算符<br>16.8.3 逻辑非运算符<br>16.9 位运算符<br>16.9.1 位与运算符<br>16.9.2 位或运算符<br>16.9.3 位异或运算符<br>16.9.4 位非运算符<br>16.9.5 左移运算符<br>16.9.6 带符号右移运算符<br>第17章 JavaScript 程序核心语法<br>17.1 函数<br>17.1.1 什么是函数<br>17.1.2 函数的参数传递<br>17.1.3 函数中变量的作用域和返回值<br>17.2 函数的定义<br>17.2.1 函数的普通定义方式<br>17.2.2 函数的变量定义方式<br>17.2.3 函数的指针调用方式<br>17.3 使用选择语句<br>17.3.1 if选择语句<br>17.3.2 if?else选择语句<br>17.3.3 if?else if?else选择语句<br>17.3.4 switch多条件选择语句<br>17.4 使用循环语句<br>17.4.1 for循环语句<br>17.4.2 while循环语句<br>17.4.3 do?while循环语句<br>17.4.4 break和continue跳转语句<br>17.5 综合实战——禁止鼠标右击<br>第18章 JavaScript核心对象<br>18.1 面向对象编程的简单概念<br>18.1.1 什么是面向对象<br>18.1.2 如何创建对象<br>18.1.3 对象的属性<br>18.1.4 对象的方法<br>18.2 对象应用<br>18.2.1 声明和实例化<br>18.2.2 对象的引用<br>18.2.3 对象的废除<br>18.2.4 对象的早绑定和晚绑定<br>18.3 JavaScript的对象层次<br>18.3.1 客户端对象层次介绍<br>18.3.2 浏览器对象模型<br>18.4 综合实战——显示当前时间<br>第19章 JavaScript中的事件<br>19.1 事件驱动与事件处理<br>19.1.1 事件详解<br>19.1.2 事件与事件驱动<br>19.1.3 事件与处理代码关联<br>19.1.4 调用函数的事件<br>19.1.5 调用代码的事件<br>19.1.6 设置对象事件的方法<br>19.2 常见事件<br>19.2.1 onClick事件<br>19.2.2 onchange事件<br>19.2.3 onSelect事件<br>19.2.4 onfocus事件<br>19.2.5 onload事件<br>19.2.6 鼠标移动事件<br>19.2.7 onblur事件<br>19.2.8 onsubmit事件和onreset事件<br>19.2.9 onresize页面大小事件<br>19.2.10 键盘事件<br>19.3 其他常用事件<br>19.4 综合实战——将事件应用于按钮中<br>第20章 窗口对象<br>20.1 window对象<br>20.1.1 window对象介绍<br>20.1.2 window对象的使用方法<br>20.2 窗口的位置<br>20.2.1 获取窗口外侧及内侧尺寸<br>20.2.2 按照指定的数值逐渐移动浏览器<br>20.2.3 滚动窗口<br>20.2.4 调整窗口的大小<br>20.3 对话框<br>20.3.1 警告对话框<br>20.3.2 询问对话框<br>20.3.3 输入对话框<br>20.4 状态栏<br>20.4.1 状态栏介绍<br>20.4.2 默认状态栏信息<br>20.4.3 状态栏瞬间信息<br>20.4.4 在状态栏显示滚动文字<br>20.4.5 在状态栏显示问候语句<br>20.4.6 检索页面中的文字<br>20.5 窗口操作<br>20.5.1 打开新窗口<br>20.5.2 窗口名字<br>20.5.3 关闭窗口<br>20.5.4 窗口的引用<br>20.5.5 在显示器左上角显示窗口<br>20.5.6 在显示器左下角显示窗口<br>20.5.7 在显示器右上角显示窗口<br>20.5.8 在显示器右下角显示窗口<br>20.6 综合实战<br>20.6.1 实战——全屏显示窗口<br>20.6.2 实战——定时关闭窗口<br>第21章 屏幕和浏览器对象<br>21.1 屏幕对象<br>21.1.1 检测显示器参数<br>21.1.2 客户端显示器屏幕分辨率<br>21.1.3. 客户端显示器屏幕的有效宽度和高度<br>21.1.4 获取显示器的显示信息<br>21.2 浏览器对象<br>21.2.1 获取浏览器对象的属性值<br>21.2.2 Plugin插件<br>21.2.3 获取可使用的MIME类型<br>21.3 综合实战<br>21.3.1 实战——设置为首页和加入收藏夹<br>21.3.2 实战——浏览器状态栏显示信息<br>第22章 文档对象<br>22.1 文档对象概述<br>22.1.1 文档对象介绍<br>22.1.2 文档对象的使用方法<br>22.1.3 引用文档中对象的方法<br>22.2 文档对象的应用<br>22.2.1 设置超链接的颜色<br>22.2.2 设置网页背景颜色和默认文字颜色<br>22.2.3 文档上次修改时间<br>22.2.4 在网页中输出内容<br>22.2.5 文档定位<br>22.2.6 文档标题<br>22.2.7 打开和关闭文档<br>22.3 链接对象<br>22.3.1 链接对象的介绍<br>22.3.2 感知鼠标移动事件<br>22.4 脚本化cookie<br>22.4.1 cookie介绍<br>22.4.2 cookie的优点和缺点<br>22.4.3 检测浏览器是否支持cookie功能<br>22.4.4 创建cookie<br>22.4.5 cookie的生存期<br>22.5 综合实战——文字连续变换多种颜色<br>第23章 历史对象和地址对象<br>23.1 历史对象<br>23.1.1 历史对象的介绍<br>23.1.2 前进到上一页和后退到下一页<br>23.1.3 跳转<br>23.1.4 创建返回或前进到数页前页面的按钮<br>23.2 地址对象<br>23.2.1 URL介绍<br>23.2.2 获取当前页面的URL<br>23.2.3 加载新网页<br>23.2.4 获取参数<br>23.2.5 刷新文档<br>23.2.6 加载新文档<br>23.2.7 页面加载结束后,加载下一个页面<br>23.3 综合实战——制作一个用户登录页面<br>第24章 表单对象和图片对象<br>24.1 form表单对象<br>24.1.1 在链接中使用单选按钮<br>24.1.2 给按钮添加链接<br>24.1.3 给下拉列表添加链接<br>24.1.4 在文本框中滚动显示文字<br>24.1.5 变更复选框的值<br>24.1.6 密码验证<br>24.1.7 确认是否重置<br>24.1.8 选择上传的文件<br>24.2 image图片对象<br>24.2.1 获取图片信息<br>24.2.2 图片轮番显示效果<br>24.2.3 控制动画播放<br>24.2.4 指向或单击图片时,使图片发生变换<br>24.2.5 显示加载图片状态<br>24.2.6 确认是否重新加载图片<br>24.3 综合实战<br>24.3.1 实战——如何制作在网页上不断飘来飘去的图片<br>24.3.2 实战——不用数据库,要访问者要输入正确的名称与密码才能进入网页<br><br>第4篇 综合实战<br>第25章 设计制作企业网站<br>25.1 网站整体规划<br>25.1.1 网站的需求分析<br>25.1.2 色彩搭配与风格设计<br>25.2 页面架构分析<br>25.2.1 页面内容结构布局<br>25.2.2 页面HTML框架代码<br>25.3 页面的通用规则<br>25.4 制作页面头部header部分<br>25.4.1 制作页面头部的结构<br>25.4.2 定义页面头部的样式<br>25.5 制作网站导航nav部分<br>25.5.1 制作网站导航nav部分页面结构<br>25.5.2 定义网站导航nav部分样式<br>25.6 制作欢迎文字welcome部分<br>25.6.1 制作welcome部分页面结构<br>25.6.2 定义welcome部分样式<br>25.7 制作会员登录与精彩活动部分<br>25.7.1 制作会员登录部分<br>25.7.2 制作精彩活动部分<br>25.8 制作"我们的优势"和"应对策略"部分<br>25.8.1 制作"我们的优势"部分<br>25.8.2 制作"应对策略"部分<br>25.9 制作底部footer部分<br>25.10 利用JavaScript制作网页特效<br>25.11 网站的推广<br>25.11.1 登录搜索引擎<br>25.11.2 利用友情链接<br>25.11.3 借助网络广告<br>25.11.4 登录网址导航站点<br>25.11.5 BBS宣传<br>25.11.6 发布信息推广<br>25.11.7 利用群组消息即时推广<br>25.11.8 电子邮件推广<br>25.11.9 电子邮件推广的技巧</div></div></div></div> </div> </div> </div> <div class="item-desc__content"> <p class="item-desc__title word-bold">Specifications</p> <table class="specification" role="none"> <tr> <td>Brand</td> <td>Jingdong book</td> </tr> <tr> <td>Brand Origin</td> <td>China</td> </tr> </table> </div> <div class="item-desc__content"> <p class="item-desc__title word-bold" >Disclaimer</p> <p class="item-desc__text">Product packaging, specifications and price are subject to change without notice. All information about the products on our website is provided for information purposes only. Please always read labels, warnings and directions provided with the product before use.</p> <a href="https://customer.yamibuy.com/customer/terms/term-of-use.html" class="link-gray terms-viewmore">View Full Terms of Use</a> </div> <!-- 此段代码会导致CLS问题,由上方的PHP blade 语法代替 --begin --> <!-- <div class="item-desc__content" v-for="(desc, index) in details" :key="index"> <h2 class="item-desc__title" v-if="desc.type == 2" v-skeleton>{{ desc.property_name }}</h2> <p class="item-desc__title" v-else-if="desc.type != 4 && desc.type != 5" v-skeleton>{{ desc.property_name }}</p> <p class="item-desc__text" v-if="desc.type == 1" v-skeleton>{{ desc.property_value }}</p> <div class="item-desc__detail" v-if="desc.type == 2" v-html="processDetail(desc.property_value)"></div> <table class="specification" v-if="desc.type == 3"> <tr v-for="(value, key, idx) in processSpecifications(desc.property_value)" :key="idx" v-skeleton> <td>{{ key }}</td> <td>{{ value }}</td> </tr> </table> </div> <div class="item-desc__content"> <p class="item-desc__title" >Disclaimer</p> <p class="item-desc__text" v-skeleton v-for="(desc, index) in details" :key="index" v-if="desc.type == 4">{{ desc.property_value }}</p> <p class="item-desc__text" v-skeleton v-for="(desc, index) in details" :key="index" v-if="desc.type == 5">{{ desc.property_value }}</p> <p class="item-desc__text" v-skeleton>Product packaging, specifications and price are subject to change without notice. All information about the products on our website is provided for information purposes only. Please always read labels, warnings and directions provided with the product before use.</p> <a href="https://customer.yamibuy.com/customer/terms/term-of-use.html" class="link-gray terms-viewmore" v-skeleton>View Full Terms of Use</a> </div> --> <!-- 此段代码会导致CLS问题,由上方的PHP blade 语法代替 --end --> </div> </div> </div> <div class="item-info-right__wrapper"> <div class="item-side" v-show="isLoaded" v-cloak> <div class="side-action" v-if="item.item_type != 5"> <div class="side-action__share clearfix" v-skeleton> <div class="slide-share__item"> <span> <i @mouseover="onWechatQrcodeShow(weixinShareUrl)" class="iconfont icon-follow-wechat"></i> <div class="slide-share__qrcode"> <img :src="shareQrcode" alt="Yami wechat-share qr code"> <p>Scan to Share</p> </div> </span> </div> <div class="slide-share__item"> <button @click="toggleSlide('share')" aria-label="Email Share"> <i class="iconfont icon-Email"></i> </button> </div> <div class="slide-share__item"> <button @click="shareFacebook(itemLink,trackData)" aria-label="Facebook Share"> <i class="iconfont icon-follow-FB"></i> </button> </div> <div class="slide-share__item"> <a ref="weiboLink" :href="buildWeiboShareLink(shareData, '258215109')" target="_blank" @click="onShareWeibo(itemLink,trackData)" title="weibo"> <i class="iconfont icon-follow-weibo"></i> </a> </div> </div> <div class="side-action__fav" v-if="item.item_type != 4" v-skeleton> <span v-text="!isFavorite ? __('Add to favorites') : __('Added to favorites')">Add to favorites</span> <i class="iconfont" @click="toggleFavorite()" :class="[isFavorite ? 'icon-FavoriteFiled' : 'icon-Favorite']"></i> </div> <div class="side-action__coupon" v-if="couponList.length > 0 && item.item_type != 4 && item.item_type != 6" v-skeleton> <div class="side-coupon__list clearfix"> <div class="side-coupon__item" v-for="(coupon, index) in couponList" v-if="index < 2" :key="index"> <span>{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}</span> <i class="iconfont icon-Clip"></i> </div> </div> <div class="side-coupon"> <a class="link-red" href="javascript:;" @click="toggleSlide('coupon')">Clip coupons</a> </div> </div> <a v-if="showBuyDirectly" class="side-action__directbuy" :href="goodsLink"> {{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }} </a> <div class="side-action__count clearfix" v-if="item.item_type != 4 && item.item_type != 6" v-skeleton> <div class="side-action__memo" :class="{'text-gray': disableAction}"> <span>Quantity</span> </div> <div class="side-action__main"> <div class="side-action__change notranslate"> <i class="iconfont icon-less" :class="[isMinQuantity || disableAction ? 'text-gray' : 'text-red']" @click="onQuantityChange(-1)"></i> <span :class="{'text-gray': disableAction}">{{ quantity }}</span> <i class="iconfont icon-add" :class="[isMaxQuantity || disableAction ? 'text-gray' : 'text-red']" @click="onQuantityChange(1)"></i> </div> <div class="side-action__alert text-red" v-if="instockMsg && canDelivery" v-skeleton> {{ instockMsg }} </div> <div class="side-action__alert" :class="{'text-gray': disableAction}" v-else-if="limitText" v-skeleton> {{ limitText }} </div> </div> </div> <div class="side-action__button js-add" v-if="item.item_type == 6"> <button v-if="buttonTypePin == 1" @mouseenter="isShowPinQrCode = true" @mouseleave="isShowPinQrCode = false" class="side-button__normal" v-skeleton> <span class="side-button__memo">Start</span> </button> <button v-if="buttonTypePin == 2" @mouseenter="isShowPinQrCode = true" @mouseleave="isShowPinQrCode = false" class="side-button__normal" v-skeleton> <span class="side-button__memo">Start</span> </button> <button v-if="buttonTypePin == 3" @mouseenter="isShowPinQrCode = true" @mouseleave="isShowPinQrCode = false" class="side-button__normal side-button__soldout-pin" v-skeleton> <span class="side-button__memo">Sold out, hang around</span> </button> <button v-if="buttonTypePin == 4" class="side-button__normal side-button__expired" v-skeleton> <span class="side-button__memo">Expired, hang around</span> </button> <div v-show="isShowPinQrCode" class="side-action__qr" v-skeleton> <img :src="pinQrcode" :alt="item.item_title"> <div class="side-action__qr-desc">{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}</div> </div> </div> <div class="side-action__button js-add" v-else-if="item.item_type != 4"> <button v-if="buttonType == 1" class="side-button__normal" @click="onAddCart()" v-skeleton> <span class="side-button__memo">Add to Cart</span> </button> <button v-if="buttonType == 2" class="side-button__checkout" @click="onCheckout()" v-skeleton> <span class="side-button__memo">Checkout</span> </button> <button v-if="buttonType == 3" class="side-button__restock" @click="onRestock()" v-skeleton> <span class="side-button__memo">Restock alert</span> </button> <button v-if="buttonType == 4" class="side-button__soldout" v-skeleton> <span class="side-button__memo">Sold out</span> </button> <button v-if="buttonType == 5" class="side-button__limit" v-skeleton> <span class="side-button__memo">Add to Cart</span> </button> <button v-if="buttonType == 6" class="side-button__limit" v-skeleton> <span class="side-button__memo">Checkout</span> </button> </div> </div> </div> <div class="item-side skeleton" v-show="!isLoaded"> <!-- 分享按钮 --> <div class="side-action"></div> <!-- 计数器 --> <div class="side-action__count"></div> <!-- 购买按钮 --> <div class="side-action__button"></div> </div> <div class="desc-side" :class="{disable: item.item_type == 4 || item.item_type == 5}"> <div class="side-shop" data-observetrack="module-goods_service"> <div class="side-shop__title"> <div class="side-title__name" v-skeleton> <!-- RP-7007 FBY 商品给seller name文字加a连接 --> Sold by JD@CHINA </div> <div class="side-title__logo" @click="onSellerClick()" v-skeleton> <div class="side-logo__other clearfix"> <a href="https://www.yamibuy.com/en/seller/17"> <img src="https://cdn.yamibuy.net/mkpl/ba3f304d8bb4fa4ceaef820526c367ba_160x80.png" alt="JD@CHINA"> </a> </div> </div> </div> <div class="side-shop__ship--wrapper" :class="item.item_type == 6 && !item.is_yami ? 'side-shop__ship--wrapper-pin' : ''"> <div class="side-shop__ship" v-if="item.item_type != 5 && item.item_type != 4 && item.item_type != 6" v-skeleton> <div class="side-ship__name"> <span>Ship to</span> <button @click="showZipcode()" class="notranslate">{{shippingDist}}</button> </div> <div class="side-ship__desc" v-if="item.in_stock"> <div class="ship-desc__normal" v-if="expectedTimeTex && canDelivery" v-html="expectedTimeTex"></div> </div> </div> <div class="side-shop__ship" :class="!item.is_yami ? 'side-shop__ship-pin' : ''" v-if="item.item_type == 6" v-skeleton> <div class="side-ship__name">{{ __("Ship to United States only") }}</div> </div> </div> <div class="side-shop__promise" v-show="!(item.item_type == 6 && !item.is_yami)"> <div class="side-promise__list" v-skeleton> <div class="side-promise__item dotted"> <div class="side-promise__item--dotted"></div> <span>Free shipping over 69</span> </div> <div class="side-promise__item dotted"> <div class="side-promise__item--dotted"></div> <span>Genuine guarantee</span> </div> </div> <div v-if="item.item_type != 6" class="side-promise__more seller" v-skeleton> <a class="link-black" href="javascript:;" @click="toggleSlide('seller')">View details</a> </div> </div> </div> <div class="side-tags" data-observetrack="module-goods_tag" v-if="(item.item_keyword && item.item_keyword.length > 0 || regionInfo) && item.item_type != 6"> <div class="side-region__wrapper" v-if="regionInfo"> <div class="side-region__title" v-skeleton>Region</div> <div class="side-region__item" v-skeleton> <a :href="getLangPath() + regionInfo.url" @click="onRegionClick()"> <img :src="regionInfo.icon" :alt="regionInfo.title"> <p class="side-region__txt">{{ regionInfo.title }}</p> </a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="item-preview__popup" v-if="showImagePreview" v-cloak> <div class="item-preview__container"> <button class="item-preview__close" @click="toggleImagePreview()"> <i class="iconfont icon-close"></i> </button> <div class="item-preview__swiper"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(data, index) in itemVideoImageList"> <div class="image-preview" :style="data.type == 1 && !mouseMoveToggle ? 'cursor: zoom-in;' : 'cursor: zoom-out;'" @click="allowMouseHandler($event)" @mousemove.stop.parent="previewBigImg(data, $event)" @mouseleave="hideBigImg($event)" > <img v-if="data.type == 1" v-lazy="data.url" :alt="'Product Detail - Html+JavaScript网页制作与开发完全学习手册(附光盘+完全学习手册) - image' + index"> <div class="image-preview__bigimg--wrapper" v-if="data.type == 1" v-show="mouseMoveToggle"> <img class="image-preview__bigimg" v-lazy="data.url" :alt="'Product Detail - Html+JavaScript网页制作与开发完全学习手册(附光盘+完全学习手册) - image' + index"> </div> <item-video ref="video-image" v-if="data.type == 2" :source="data.url" :poster="data.cover" :index="index" :preview-index="currentActiveIndex" > </item-video> </div> </div> </div> </div> </div> <div class="swiper-button-container" v-if="itemVideoImageList && itemVideoImageList.length > 8"> <div class="swiper-button-prev"> <i class="iconfont icon-arrow-up"></i> </div> <div class="swiper-button-next"> <i class="iconfont icon-arrow-down"></i> </div> </div> <div class="image-preview__list--wrapper" :class="{'big' : itemVideoImageList && itemVideoImageList.length > 8}"> <div class="image-preview__list"> <div class="image-preview__item" :class="{'active' : currentActiveIndex == index}" v-for="(data, index) in itemVideoImageList" @click="onClickImage(index)"> <div class="image-preview__item--img"> <span v-if="data.type == 2" class="image-preview__video-icon"></span> <img v-lazy="data.type == 1 ? data.url : data.cover" :alt="'Product Detail - Html+JavaScript网页制作与开发完全学习手册(附光盘+完全学习手册) - image' + index"> </div> </div> </div> </div> </div> </div> <div class="light-slide__wrapper" v-if="showSlide" @click="toggleSlide()" v-cloak> <div class="light-slide__container animation-leftSlideIn" :class="{'animation-leftSlideOut': hideSlide}" @click.stop> <div v-if="slideType == 'addcart'" class="light-slide__head" :class="{'light-slide-addcart__head': addCartRecommendItems.length > 0}"> <button class="light-slide__close" @click="toggleSlide()"><i class="iconfont icon-close"></i></button> <div> <p class="slide-addcart__title">Added to Cart</p> <div class="slide-addcart__action"> <button class="button-red" @click="viewCart()">View cart</button> <a href="javascript:;" class="link-black" @click="toggleSlide()">Keep Shopping</a> </div> </div> </div> <div v-else class="light-slide__head"> <button class="light-slide__close" @click="toggleSlide()"><i class="iconfont icon-close"></i></button> </div> <div class="light-slide__body"> <div class="slide-content" v-if="slideType == 'addcart'"> <div class="slide-addcart__rec" v-if="addCartRecommendItems.length > 0"> <p class="addcart-rec__title">More to Consider</p> <div class="clearfix"> <div class="addcart-rec__item" v-for="(item, index) in addCartRecommendItems" :key="item.item_number" :data-rec-expose=`rec-addcart_pop_up-${index+1}-${item.item_number}-{Date}-${item.unit_price}`> <a :href="item.item_url"> <img v-lazy="item.image_url" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" :alt="item.item_name"> </a> <p class="rec-item__brand"> <a :href="item.brand_url">{{ item.brand_name }}</a> </p> <p class="rec-item__name"> <a :href="item.item_url">{{ item.item_name }}</a> </p> <div class="rec-item__price"> <div v-if="item.is_promotion"> <p class="rec-price__market">{{ item.currency }}{{ item.market_price }}</p> <p class="rec-price__sale word-bold-price">{{ item.currency }}{{ item.unit_price }}</p> </div> <p v-else class="rec-price__shop word-bold-price">{{ item.currency }}{{ item.unit_price }}</p> </div> </div> </div> </div> </div> <div class="slide-content" v-if="slideType == 'coupon'"> <p class="slide-coupon__title">Coupons</p> <div class="slide-coupon__item" :style="{'z-index': couponList.length*2 - index}" v-for="(coupon, index) in couponList" :key="index" :class="{'over': (!coupon.is_gain && getCouponStatus(coupon.use_end_time) == 2) || coupon.clip_disabled}"> <div class="coupon-item__head"> <div class="coupon-item__head--desc"> {{ coupon.coupon_name_new | formatCurrency }} </div> <a v-if="!coupon.is_gain && getCouponStatus(coupon.use_end_time) != 2" @click="onReceiveCouponClick(coupon.ps_code)" class="coupon-item__head--button" href="javascript:;"> Clip </a> <a v-if="coupon.is_gain" class="coupon-item__head--button button-clipped" href="javascript:;"> <i class="iconfont icon-Selected"></i><span>Clipped</span> </a> <a v-if="(!coupon.is_gain && getCouponStatus(coupon.use_end_time) == 2) || coupon.clip_disabled" class="coupon-item__head--button" href="javascript:;"> Over </a> </div> <div class="coupon-item__foot"> <div class="coupon-item__foot--wrapper"> <div v-cloak class="coupon-item__foot--scope" @mouseenter="showMore($event)" @mouseleave="hideMore($event)"> <span class="coupon-msg--content" >{{ getCouponDescStr(coupon) }}</span> <i class="iconfont icon-arrow-down show-more--icon"></i> </div> <div class="coupon-item__foot--time" v-if="!coupon.is_gain && coupon.is_relate"> {{ coupon.use_time_desc }} </div> <div class="coupon-item__foot--time" v-else> <span v-if="getCouponStatus(coupon.use_end_time) == 1" class="expires-soon">Expires soon {{ formatTime(coupon.use_end_time) }}</span> <span v-else-if="isInCouponPreTime(coupon)" v-text="formatTime(coupon.use_start_time) + ' - ' + formatTime(coupon.use_end_time)"></span> <span v-else v-text="__('Expires: ') + formatTime(coupon.use_end_time)"></span> </div> </div> </div> </div> </div> <div class="slide-content" v-if="slideType == 'share'"> <p class="slide-share__title">Share this item with friends</p> <light-input ref="share-email-input" @change="onShareEmailChange" input-value="" :is-error="shareToEmailError" error-info="Please enter a valid Email" input-placeholder="To(Use comma to separate multiple email address)*" user-class="slide-restock__input"></light-input> <div class="slide-share__content"> <p class="share-content__title">Message</p> <p class="share-content__article"> I was shopping on Yamibuy.com and saw some things that you'll love. Check this thing: Yamibuy is a one-stop shopping site for best Asian products, they have a great assortment of snacks, beauty, small appliance & more. </p> </div> <div class="slide-share__action"> <a href="javascript:;" class="link-black" @click="toggleSlide()">Cancel</a> <button class="button-red" @click="onSendShareEmail()">Send</button> </div> </div> <div class="slide-content" v-if="slideType == 'giftcard'"> <p class="slide-content__title word-bold">Yami Gift Card</p> <p class="slide-content__desc">Get this exclusive deal when paying with gift card</p> <p class="slide-content__title2 word-bold">Terms and Conditions</p> <div class="slide-content__article"> <p>Gift card deals are special offers for selected products;</p> <p>The gift card deals will automatically be activated if a customer uses gift card balance at check out and the balance is sufficient to pay for the total price of the shopping cart products with gift card deals;</p> <p>You will not be able to activate the gift card deals if you choose other payment methods besides gift card. The products will be purchased at their normal prices;</p> <p>If your account balance is not enough to pay for the products with gift card deals, you can choose to reload your gift card balance by clicking on the Reload button at either shopping cart page or check out page;</p> <p>Products that have gift card deals can be recognized by a special symbol showing 'GC Deal';</p> <p>For any additional questions or concerns, please contact our customer service;</p> <p>Yamibuy reserves the right of final interpretation.</p> </div> <a :href="rechargeUrl"> <button class="button-red">Recharge</button> </a> </div> <div class="slide-content" v-show="slideType == 'seller' && sellerType == 'yamibuy'"> <p class="slide-seller__title">Sold by Yami</p> <div class="slide-seller__logo"> <img class="yami" src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/images/logo&en.png" alt="Yami"> </div> <div class="slide-seller__service" data-source="nb_seller_service_en"> <p class="seller-service__title word-bold">Service Guarantee</p> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-shipping.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Free Shipping over $49</span> </div> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-return.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Easy Returns</span> </div> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-delivery.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Ships from United States</span> </div> </div> <div class="slide-seller__shipping" data-source="self_sale_tip"> <p class="seller-shipping__title word-bold">Shipping</p> <ul class="seller-shipping__list"> <li class="seller-shipping__item"> <p class="shipping-item__title">United States</p> <p class="shipping-item__content">Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.</p> <p class="shipping-item__content">Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.</p> <p class="shipping-item__content">2-Day Express (Includes Alaska & Hawaii) starts at $19.99.</p> </li> </ul> </div> <div class="slide-seller__policy"> <p class="seller-policy__title word-bold">Return Policy</p> <p>Yami is committed to provide our customers with a peace of mind when purchasing from us. Most items shipped from Yamibuy.com can be returned within 30 days of receipt of shipment (For Food, Beverages, Snacks, Dry Goods, Health supplements, Fresh Grocery and Perishables Goods, within 7 days of receipt of shipment due to damages or quality issues; To ensure that every customer receives safe and high-quality products, we do not provide refunds or returns for beauty products once they have been opened or used, except in the case of quality issues; Some products may have different policies or requirements associated with them, please see below for products under special categories, or contact Yami Customer Service for further assistance).</br>Thank you for your understanding and support.</p> <a href="//www.yamibuy.com/en/article/474093" class="link-black">Learn More</a> </div> </div> <div class="slide-content" v-show="slideType == 'seller' && sellerType == 'giftcard'"> <p class="slide-seller__title">Sold by Yami</p> <div class="slide-seller__logo"> <img class="yami" src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/images/logo&en.png" alt="Yami"> </div> <div class="slide-seller__shipping" data-source="nb_seller_service_en"> <p class="seller-shipping__title word-bold">Terms and Conditions of Yami E-Gift Card</p> <p>If you choose “Redeem automatically” as your delivery method, your gift card balance will be reload automatically after your order has been processed successfully;</p> <p>If you choose “Send to Email”as your delivery method, the card number and CVV will be sent to the email address automatically;</p> <p>Any user can use the card number and CVV to redeem the gift card, please keep your gift card information safely. If you have any trouble receiving email, please contact Yami customer service;</p> <p>Yami gift card can be used to purchase both Yami owned or Marketplace products;</p> <p>Yami gift card will never expire;</p> <p>Yami gift card balance does not have to be used up at once;</p> <p>All rights reserved by Yami.</p> </div> <div class="slide-seller__policy"> <p class="seller-policy__title word-bold">Return Policy</p> <p>Gift card that has already been consumed is non-refundable.</p> </div> </div> <div class="slide-content" data-source="nb_seller_service_en" v-show="slideType == 'seller' && sellerType == 'fby'"> <p class="slide-seller__title"> Sold by <a href="https://www.yamibuy.com/en/seller/17"> JD@CHINA </a> </p> <div class="slide-seller__logo slide-seller__logo__box"> <div class="seller-logo__fby"></div> <span class="slide-seller__logo-txt word-bold">Fulfilled by Yami</span> </div> <div class="slide-seller__service" data-source="nb_seller_service_en"> <p class="seller-service__title word-bold">Service Guarantee</p> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-shipping.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Free Shipping over $49</span> </div> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-return.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Easy Returns</span> </div> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-delivery.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text">Ships from United States</span> </div> </div> <div class="slide-seller__shipping" data-source="fby_shipping_desc"> <p class="seller-shipping__title word-bold">Shipping</p> <ul class="seller-shipping__list"> <li class="seller-shipping__item"> <p class="shipping-item__title">United States</p> <p class="shipping-item__content">Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.</p> <p class="shipping-item__content">Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.</p> <p class="shipping-item__content">2-Day Express (Includes Alaska & Hawaii) starts at $19.99.</p> </li> </ul> </div> <div class="slide-seller__policy"> <p class="seller-policy__title word-bold">Return Policy</p> <p>You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.</p> </div> </div> <div class="slide-content" v-show="slideType == 'seller' && sellerType == 'select'"> <p class="slide-seller__title">Sold by JD@CHINA</p> <div class="slide-seller__logo slide-seller__logo__box"> <div class="seller-logo__select"></div> <span class="slide-seller__logo-txt word-bold">Yami-China FC</span> </div> <div class="slide-seller__service" data-source="nb_seller_service_en"> <p class="seller-service__title word-bold">Service Guarantee</p> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-shipping.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text"> Cross-store Free Shipping over $69</span> </div> <div class="seller-service__item"> <img v-lazy="'//cdn.yamibuy.net/statics/libraries/yamibuy/nb/images/service-return.png'" src="//cdn.yamibuy.net/statics/libraries/yamibuy/images/lazy.svg" class="seller-service__item__icon" alt="Yami"> <span class="seller-service__item--text"> 30-days Return</span> </div> </div> <div class="slide-seller__shipping" data-source="yamiSelect_detail"> <p class="seller-shipping__title word-bold">Yami-China FC</p> <p>Yami has a consolidation warehouse in China which collects multiple sellers’ packages and combines to one order. Our Yami consolidation warehouse will directly ship the packages to your door. Cross-store free shipping over $69.</p> </div> <div class="slide-seller__shipping" data-source="yamiSelect_detail"> <p class="seller-shipping__title word-bold">Return Policy</p> <p>You may return products within 30 days upon receiving the products. Sellers take responsibilities for any wrong shipment or missing items. Packing needs to be unopened for any other than quality issues return. We promise to pack carefully, but because goods are taking long journey to destinations, simple damages to packaging may occur. Any damages not causing internal goods quality problems are not allowed to return. If you open the package and any quality problem is found, please contact customer service within three days after receipt of goods.</p> </div> <div class="slide-seller__shipping" data-source="yamiSelect_detail"> <p class="seller-shipping__title word-bold">Shipping Information</p> <p>Yami Consolidation Service Shipping Fee $9.99(Free shipping over $69)</p> <p>Sellers in China will ship their orders within 1-2 business days once the order is placed. Packages are sent to our consolidation warehouse in China and combined there. Our Yami consolidation warehouse will directly ship the packages to you via UPS. The average time for UPS to ship from China to the United States is about 10 working days and it can be traced using the tracking number. Due to the pandemic, the delivery time may be delayed by about 5 days. The package needs to be signed by the guest. If the receipt is not signed, the customer shall bear the risk of loss of the package. </p> </div> </div> <div class="slide-content" v-if="slideType == 'seller' && sellerType == 'seller'"> <p class="slide-seller__title">Sold by JD@CHINA</p> <div class="slide-seller__logo"> <div class="seller-logo__other clearfix"> <img src="https://cdn.yamibuy.net/mkpl/ba3f304d8bb4fa4ceaef820526c367ba_160x80.png" alt="JD@CHINA"> </div> </div> <div class="slide-seller__service"> <p class="seller-service__title word-bold">Service Guarantee</p> <div class="seller-service__item third"> <span class="seller-service__item--text">Free shipping over 69</span> </div> <div class="seller-service__item third"> <span class="seller-service__item--text">Genuine guarantee</span> </div> </div> <div class="slide-seller__shipping"> <p class="seller-shipping__title word-bold">Shipping</p> <p>Yami Consolidated Shipping $9.99(Free shipping over $69)</p> <br/> <p>Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.</p> </div> <div class="slide-seller__policy"> <p class="seller-policy__title word-bold">Yami Points information</p> <p>All items are excluding from any promotion or points events on Yamibuy.com</p> </div> <div class="slide-seller__policy"> <p class="seller-policy__title word-bold">Return Policy</p> <p>You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.</p> </div> </div> </div> </div> </div> </div> <div class="floatbox-section floatbox"> <!-- RP-6395PC悬浮抽奖入口配置 --> <div @mouseenter="trackAppDownload()" class="floatbox__tools"> <i class="iconfont icon-APP"></i> <div class="floatbox__qrcode"> <img class="floatbox__qrcode--img" src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/images/download.png" alt="Yami"> <p>Download the Yami App</p> <div class="floatbox__bubbles"> <em></em> </div> </div> </div> <div @click="onFeedback()" class="floatbox__tools floatbox__tools--feedback"> <i class="iconfont icon-feedback"></i> <div class="floatbox__feedback"> <p>Feedback</p> <div class="floatbox__bubbles"> <em></em> </div> </div> </div> <div @click="onGoTop()" class="floatbox__tools floatbox__tools--backtop"> <i class="iconfont icon-top"></i> <div class="floatbox__backtop"> <p>Back Top</p> <div class="floatbox__bubbles"> <em></em> </div> </div> </div> <!-- 弹窗 --> <div class="popup__wrapper" style="display: none;" v-show="showFeedback"> <div class="popup__feedback"> <span @click="closeModal()" class="popup__feedback--close"><i class="iconfont icon-close"></i></span> <p class="popup__feedback__h1 word-bold">Your suggestions help us improve together</p> <p class="popup__feedback__h2"> Please contact to <a @click="onConcatService($event)" class="popup__feedback__link" href="https://www.yamibuy.com/en/article/473953"> Customer Service </a> talk about Order & Return~ </p> <div class="popup__feedback__checkbox"> <p class="feedback__checkbox--msg" :class="{'feedback__checkbox--error': isTypeError}"> Please select feedback type(Select at least one) </p> <span v-for="(type, index) in types" @click="onChooseType(index)" class="feedback__checkbox--wrapper" :key="index"> <span class="checkbox-btn" :class="{checked: activeIndex.indexOf(index) > -1}"> <i class="iconfont icon-Selected"></i> </span> <span class="checkbox-btn--msg" v-text="type.tag_name"></span> </span> </div> <div class="popup__feedback__opinion" :class="{'feedback-active': isContentActive, 'feedback-error': isContentError}"> <textarea v-model="content" maxlength="500" placeholder="Don`t find what you need? Confusing results? Tell us everything about dissatisfied" @focus="onFeedbackFocus" @blur="onFeedbackBlur" class="feedback__opinion--textarea"> </textarea> <div class="feedback__image-upload__wrapper"> <div class="image-list__wrapper"> <div class="image-list__item" v-for="(image, index) in imageList" :style="{'background-image': 'url(' + image.image_url + ')'}"> <span class="close" @click="onDeleteImage(index)"><i class="iconfont icon-close"></i></span> </div> </div> <div v-show="isShowAddBtn" class="feedback__image-upload" @click="onChooseImageClick"> <i class="iconfont icon-add"></i> <input ref="feedbackEmailInput" @change="doUpload" type="file" name="file" accept="image/jpg,image/jpeg,image/png" multiple="multiple" class="beauty-inputfile"> </div> <span class="feedback__words-counter">{{ __('wordsLimit', {count: count}) }}</span> </div> </div> <span v-show="isContentError" class="sub-warning">Please describe your problem</span> <div class="popup__feedback__email"> <light-input @change="onEmailInputChange" @blur="onEmailInputBlur" :input-value="email" :is-error="isEmailError" error-info="Enter a valid email" input-placeholder="Email*" user-class="feedback__email__input"> <p v-show="isEmailError" class="popup__feedback__email__err">Enter a valid email</p> </div> <button @click="onSaveFeedback" class="popup__feedback__subbtn button-red">Submit</button> </div> </div> </div> <div class="js-new-recommend"> <div class="recommend-item__wrapper js-new-recommend" v-show="itemListRecommend && itemListRecommend.length > 0" data-observetrack="module-recommend" v-cloak> <div class="recommend-item__list"> <p class="recommend-item__title">Recommended for You</p> <item-swiper :show-sale="true" component-id="rec-item" :item-list="itemListRecommend" @onrestock=onRestock @addtocart=addToCart></item-swiper> </div> <div class="light-slide__wrapper" v-if="showSlide" @click="toggleSlide()" v-cloak> <div class="light-slide__container animation-leftSlideIn" :class="{'animation-leftSlideOut': hideSlide}" @click.stop> <div class="light-slide__head"> <button class="light-slide__close" @click="toggleSlide()"><i class="iconfont icon-close"></i></button> </div> <div class="light-slide__body"> <div class="slide-content"> <div class="slide__brand__title"> About the brand </div> <p class="slide__brand__h1">Jingdong book</p> <div class="slide__brand__text"> </div> </div> </div> </div> </div> </div> <div v-show="itemListRecommend === null"> <div class="skeleton recommend-item__wrapper"> <div class="recommend-item__list"> <p class="recommend-item__title"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:36px;">为您推荐</span></p> <div class="swiper-item__list"> <div class="swiper-container swiper-container-horizontal"> <div class="swiper-wrapper" style="transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> <div class="swiper-slide" style="width:cale(100%);margin-right: 32px;"> <div class="swiper-item history__item" observed=""> <div class="swiper-item__img" style="width:100%;"> <div class="history__item__tag"> <!----> <!----> </div> <img alt="Yami" class="history__item__img" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" style="background: rgb(238, 238, 238);"> </div> <div class="history__item__brand--wrapper"><div class="swiper-item__brand"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">欣葉</span></div> <span class="swiper-item__brand--variants"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">2种选择</span></span> </div> <a class="swiper-item__name"><span skeleton-type="text" class="sk-text" style="--fp:18.75%;--sp:81.25%;--lh:25.6px;">欣叶 御大福 芋头麻薯 180g</span></a> <!----> <div class="history__item__rate"> <div class="light-star__wrapper clearfix"> <div class="comment_rate__count"><a href="javascript:;" rel="nofollow"><span skeleton-type="text" class="sk-text" style="--fp:15.00%;--sp:85.00%;--lh:20px;">144</span></a></div> </div> </div> <div> <p class="item__sale"><span skeleton-type="text" class="sk-text" style="--fp:20.00%;--sp:80.00%;--lh:20px;"> 周销量 600+ </span></p> </div> <div class="history__item__price--wrapper"><span class="word-bold-price price-valid"><span skeleton-type="text" class="sk-text" style="--fp:5.00%;--sp:95.00%;--lh:20px;">$1.66</span></span> <span class="price-invalid"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">$1.99</span></span> <span class="price-discount"><span skeleton-type="text" class="sk-text" style="--fp:16.67%;--sp:83.33%;--lh:18px;">83折</span></span> </div> <div class="history__item__price__desc"> <!----> <!----> </div> <!----> </div> </div> </div> </div> <div class="swiper-button-container"> <div class="swiper-button-prev swiper-button-disabled" style="display: block;"><i class="iconfont icon-arrow-left"></i></div> <div class="swiper-button-next swiper-button-disabled" style="display: block;"><i class="iconfont icon-arrow-right"></i></div> </div> </div> </div> <!----> </div></div> </div> <div class="item-comment" v-cloak> <div class="item-comment__head--wrapper" data-observetrack="module-review"> <div class="item-comments__head"> <p class="item-comments__head--title"> <span class="comments__head--title">Reviews<i v-if="showComment" class="comments__head--numb" v-cloak>{{'('+ commentList.posts_count + ')'}}</i></span> </p> <p v-if="!showComment" class="item-comments__head--no-score">Have your say. Be the first to help other guests.</p> <a v-if="!showComment" href="javascript:;" class="comments__head--write-enter link-red" @click="onWriteClick()">Write a review</a> <div class="item-comments__headbox comments__headbox--center"> <div v-if="showComment" class="item-comments__head--score"> <div class="comments__head--start"> <span class="comments__head--start-rate"><span v-cloak>{{ totalRating }}</span></span> <!-- // 2022/4/6 中文不显示 AVERAGE by linlin --> <span class="comments__head--start-imgs"> <item-rate :show-count="false" :rate="totalRating"></item-rate> </span> <a v-if="showComment" href="javascript:;" class="comments__head--write-enter link-red" @click="onWriteClick()">Write a review</a> </div> <ul class="comments__head--grade" v-cloak> <li v-for="i in [5,4,3,2,1]" :key="i" :style="commentRatingList[i] == 0 ? 'cursor:inherit': ''" class="comments-grade-info" @click="onSortByType('rate',i)"> <p v-cloak class="comments-grade-text " :class="queryData.rating == i ? 'active' : ''" v-if="i == 1">{{i}} star</p> <p v-cloak class="comments-grade-text " :class="queryData.rating == i ? 'active' : ''" v-else>{{i}} stars</p> <p class="comments-grade-line"><i class="comments-grade-line-red" :style="'width: ' + commentRatingList[i] + '%'"></i></p> <p v-cloak class="comments-grade-numb notranslate" :class="queryData.rating == i ? 'active' : ''">{{ parseInt(commentRatingList[i]) }}%</p> </li> </ul> <button v-if="showClearBtn" class="comments__head--start--clear" @click="onClearRate()" v-cloak>View All</button> </div> </div> </div> </div> <div v-if="showComment" class="item-comments__content" data-observetrack="user_comment"> <div class="comments__content--btns--wrapper"> <div class="comments__content--btns"> <button class="comments-btn" :class="!queryData.type ? 'active':'' " @click="onSortByType('category','')">All</button> <button class="comments-btn" :class="queryData.type == 'B' ? 'active':'' " @click="onSortByType('category','B')">Purchased</button> <button class="comments-btn" :class="queryData.type == 'S' ? 'active':'' " @click="onSortByType('category','S')">Photos</button> </div> </div> <div class="comments__content--list"> <div class="comments__content-left" v-if="commentList && commentList.data"> <div class="comments__content-items clearfix" v-for="(comment, index) in evenCommentData(commentList.data)" :key="index + 'comment' + comment.post_id"> <div class="comments-items__usermsg"> <div class="comments-items__usermsg-imgbox"> <img class="comments-items__usermsg-img" v-lazy="comment.avatar" alt="Yami" > <span v-if="comment.vip_name == 'Gold'" class="comments-items__usermsg-vip"><img class="comments-items__usermsg-vipicon" :src="comment.vip_icon" alt="Yami"></span> </div> </div> <div class="comments-items__main"> <span class="comments-items__usermsg-name notranslate word-bold" v-cloak>{{ comment.user_name }}</span> <div class="comments-items__main-starbox" v-show="comment.is_bought" v-cloak> <item-rate :show-count="false" :rate="comment.rating"></item-rate> </div> <p class="comments-items__main-msg all-content" :class="'all-content_' + comment.post_id" v-cloak>{{ showTranslate(comment) }}<span v-show="isLimit(comment,800)" @click="hideComment($event,comment.post_id)" class="all-content_btn">Show Less</span></p> <p class="comments-items__main-msg" :class="'simple-content_' + comment.post_id" v-cloak>{{ strLimit(comment,800) }}<span v-show="isLimit(comment,800)" @click="showAllComment($event,comment.post_id)" class="summary-content_btn">Show more</span></p> <span v-show="!$isZh && comment.has_translate" class="comments-items__main-rendering" :class="'render_btn_' + comment.post_id" @click="showOriginal(comment.post_id)"><i class="iconfont icon-Translate"></i><i class="iconfont-text">Show Original</i></span> <p class="comments-items__main-render_msg" :class="'render_msg_' + comment.post_id" v-show="comment.has_translate" v-cloak>{{ comment.content }}</p> <div v-show="comment && comment.imageList && comment.imageList.length > 0" class="comments-items__main-photos" @click="onToggleSidebar('img',comment.post_id)"> <div v-for="(imgs, index) in sliceImg(comment.imageList)" :key="imgs.image_id" class="image-wrapper"> <img v-lazy="replaceSize(imgs.image_url, '0x0' , '300x300')" class="thumbnail" alt="Yami"> </div> <span v-if="comment && comment.imageList && comment.imageList.length > 4" class="comments-items__main--imgmore">Show All<i class="iconfont icon-add"></i></> </div> <p class="comments-items__main--datemsgs"> <span class="comments-items__main--date notranslate" v-cloak>{{ formatTime(comment.in_dtm) }}</span> <span class="comments-items__main--buy" v-show="comment.is_bought">VERIFIED PURCHASE</span> <span class="comments-items__main--seller" v-cloak v-show="groupData">{{groupData}}</span> </p> <div class="comments-items__main--opacity"> <span class="opacity--iconbox notranslate" :class="{'like':comment.is_liked}" v-if="!comment.is_liked" @click="onLikeBtn(comment)" v-cloak><i class="iconfont icon-Like"></i>{{ comment.likes_count }}</span> <span class="opacity--iconbox notranslate" :class="{'like':comment.is_liked}" v-if="comment.is_liked" @click="onUnLikeBtn(comment)" v-cloak><i class="iconfont icon-Liked"></i>{{ comment.likes_count }}</span> <span class="opacity--iconbox notranslate" @click="onToggleSidebar('reply',comment.post_id)" v-cloak><i class="iconfont icon-Comment"></i>{{ comment.reply_count }}</span> <span class="opacity--iconbox" @click="onToggleMore(comment.post_id)"><i class="iconfont icon-More"></i><span class="report-btn" :class="'report-btn_' + comment.post_id" @click="onToggleEnterPop(comment.in_user==uid ? 'delete' : 'report',comment.post_id)">{{comment.in_user==uid ? __('Delete') : __('Report')}}</span></span> </div> </div> </div> </div> <div class="comments__content-rigin" v-if="commentList && commentList.data"> <div class="comments__content-items clearfix" v-for="(comment, index) in oddCommentData(commentList.data)" :key="index"> <div class="comments-items__usermsg"> <div class="comments-items__usermsg-imgbox"> <img class="comments-items__usermsg-img" v-lazy="comment.avatar" alt="Yami" > <span v-if="comment.vip_name == 'Gold'" class="comments-items__usermsg-vip"><img class="comments-items__usermsg-vipicon" :src="comment.vip_icon" alt="Yami"></span> </div> </div> <div class="comments-items__main"> <span class="comments-items__usermsg-name notranslate word-bold" v-cloak>{{ comment.user_name }}</span> <div class="comments-items__main-starbox" v-show="comment.is_bought" v-cloak> <item-rate :show-count="false" :rate="comment.rating"></item-rate> </div> <p class="comments-items__main-msg all-content" :class="'all-content_' + comment.post_id" v-cloak>{{ showTranslate(comment) }}<span v-show="isLimit(comment,800)" @click="hideComment($event,comment.post_id)" class="all-content_btn">Show Less</span></p> <p class="comments-items__main-msg" :class="'simple-content_' + comment.post_id" v-cloak>{{ strLimit(comment,800) }}<span v-show="isLimit(comment,800)" @click="showAllComment($event,comment.post_id)" class="summary-content_btn">Show more</span></p> <span v-show="!$isZh && comment.has_translate" class="comments-items__main-rendering" :class="'render_btn_' + comment.post_id" @click="showOriginal(comment.post_id)"><i class="iconfont icon-Translate"></i><i class="iconfont-text">Show Original</i></span> <p class="comments-items__main-render_msg" :class="'render_msg_' + comment.post_id" v-show="comment.has_translate" v-cloak>{{ comment.content }}</p> <div v-show="comment && comment.imageList && comment.imageList.length > 0" class="comments-items__main-photos" @click="onToggleSidebar('img',comment.post_id)"> <div v-for="(imgs, index) in sliceImg(comment.imageList)" :key="imgs.image_id" class="image-wrapper"> <img v-lazy="replaceSize(imgs.image_url, '0x0' , '300x300')" class="thumbnail" alt="Yami"> </div> <span v-if="comment && comment.imageList && comment.imageList.length > 4" class="comments-items__main--imgmore">Show All<i class="iconfont icon-add"></i></span> </div> <p class="comments-items__main--datemsgs"> <span class="comments-items__main--date notranslate" v-cloak>{{ formatTime(comment.in_dtm) }}</span> <span class="comments-items__main--buy" v-show="comment.is_bought">VERIFIED PURCHASE</span> <span class="comments-items__main--seller" v-cloak v-show="groupData">{{groupData}}</span> </p> <div class="comments-items__main--opacity"> <span class="opacity--iconbox" :class="{'like':comment.is_liked}" v-if="!comment.is_liked" @click="onLikeBtn(comment)" v-cloak><i class="iconfont icon-Like"></i>{{ comment.likes_count }}</span> <span class="opacity--iconbox" :class="{'like':comment.is_liked}" v-if="comment.is_liked" @click="onUnLikeBtn(comment)" v-cloak><i class="iconfont icon-Liked"></i>{{ comment.likes_count }}</span> <span class="opacity--iconbox" @click="onToggleSidebar('reply',comment.post_id)" v-cloak><i class="iconfont icon-Comment"></i>{{ comment.reply_count }}</span> <span class="opacity--iconbox" @click="onToggleMore(comment.post_id)"><i class="iconfont icon-More"></i><span class="report-btn" :class="'report-btn_' + comment.post_id" @click="onToggleEnterPop(comment.in_user==uid ? 'delete' : 'report',comment.post_id)">{{comment.in_user==uid ? __('Delete') : __('Report')}}</span></span> </div> </div> </div> </div> <p v-if="commentList && (commentList.data.length == 0 || !commentList.data)" class="comments__content-empty-msg">No related comment~</p> </div> </div> <div v-if="showComment && !emptyCommentList" class="item-comments__footer" @click="onLoadMore()">Load more reviews</div> <div class="light-slide__wrapper" v-if="showSidebar && commentDetails" v-cloak @click="onToggleSidebar()"> <div class="light-slide__container item-comment__popup" :class=" toggleClass ? 'animation-leftSlideIn' : 'animation-leftSlideOut'" @click.stop="onClickContainer($event)"> <div class="light-slide__head"> <button @click="onToggleSidebar" class="light-slide__close"><i class="iconfont icon-close"></i></button> </div> <div class="light-slide__body"> <div class="item-comment__sidebar"> <p class="item-comment__sidebar__title">Review</p> <div class="item-comment__sidebar__info"> <div class="comments-items__usermsg-imgbox"> <img class="comments-items__usermsg-img" v-lazy="replaceSize(commentDetails.avatar)" alt="Yami"> <span v-if="commentDetails.vip_name == 'Gold'" class="comments-items__usermsg-vip"><img class="comments-items__usermsg-vipicon" v-lazy="commentDetails.vip_icon" alt="Yami"></span> </div> <div class="item-comment__sidebar__info--right" v-if="commentDetails.content || commentDetails.summary"> <p class="sidebar__info--username" v-cloak>{{commentDetails.user_name}}</p> <item-rate v-show="commentDetails.is_bought" v-cloak :show-count="false" :rate="commentDetails.rating"></item-rate> <p class="comments-items__main-msg all-content" :class="'all-content_' + commentDetails.post_id" v-cloak>{{ showTranslate(commentDetails) }}<span v-show="isLimit(commentDetails,800)" @click="hideComment($event,commentDetails.post_id)" class="all-content_btn">Show Less</span></p> <p class="comments-items__main-msg" :class="'simple-content_' + commentDetails.post_id" v-cloak>{{ strLimit(commentDetails,800) }}<span v-show="isLimit(commentDetails,800)" @click="showAllComment($event,commentDetails.post_id)" class="summary-content_btn">Show more</span></p> <span v-show="!$isZh && commentDetails.has_translate" class="comments-items__main-rendering" :class="'details_btn_'+ commentDetails.post_id" @click="showOriginalInfo(commentDetails.post_id)"><i class="iconfont icon-Translate"></i><i class="iconfont-text">Show Original</i></span> <p class="comments-items__main-render_msg" :class="'details_msg_'+ commentDetails.post_id" v-show="commentDetails.has_translate" v-cloak>{{ commentDetails.content }}</p> <div class="comments-items__main-photos"> <div> <img v-for="(item,index) in commentDetails.imageList" :key="index" v-show="showAllPhoto || index < 2" v-lazy="replaceSize(item.image_url, '0x0' , '0x0')" class="big-picture" alt="Yami"> </div> <span v-if="!showAllPhoto && commentDetails.imageList && commentDetails.imageList.length > 2" class="comments-items__main-photos--btn" @click="onShowAll()">Show All</span> </div> <p class="comments-items__main--datemsgs"> <span class="comments-items__main--date notranslate" v-cloak>{{ formatTime(commentDetails.in_dtm) }}</span> <span class="comments-items__main--buy" v-show="commentDetails.is_bought">VERIFIED PURCHASE</span> <span class="comments-items__main--seller" v-cloak v-show="groupData">{{groupData}}</span> </p> <div class="comments-items__main--opacity"> <span class="opacity--iconbox" :class="{'like':commentDetails.is_liked}" v-if="!commentDetails.is_liked" @click="onLikeBtn(commentDetails)" v-cloak><i class="iconfont icon-Like"></i>{{ commentDetails.likes_count }}</span> <span class="opacity--iconbox" :class="{'like':commentDetails.is_liked}" v-if="commentDetails.is_liked" @click="onUnLikeBtn(commentDetails)" v-cloak><i class="iconfont icon-Liked"></i>{{ commentDetails.likes_count }}</span> <span class="opacity--iconbox" @click="onReplyBox(commentDetails.post_id)" v-cloak><i class="iconfont icon-Comment"></i>{{ commentDetails.reply_count }}</span> <span class="opacity--iconbox" @click="onToggleMore(commentDetails.post_id,'popup')"><i class="iconfont icon-More"></i><span class="report-popup-btn" :class="'report-popup-btn_' + commentDetails.post_id" @click="onToggleEnterPop(commentDetails.in_user==uid ? 'delete' : 'report',commentDetails.post_id,'top')">{{commentDetails.in_user==uid ? __('Delete') : __('Report')}}</span></span> </div> <div class="comments-items__main--reply-wrapper" :class="'reply-box_'+commentDetails.post_id+' '+replyActive"> <textarea ref="replyTextarea" cols="30" rows="10" :placeholder="!$isZh ? __('Details are helpful, Please avoid using any inappropriate language comments') : (replyList.length ? __('Post reply') : __('Post the first reply'))" @focus="onCommentFocus" @blur="onCommentBlur" v-model="replyContent" class="comments-items__main--textarea" :class="{'empty-value': emptyContent}"></textarea> <p v-show="emptyContent" class="comments-items__main--reply-msg">Please write at least one word</p> <div class="comments-items__main__btns"> <button class="comments-items__main--reply-cancel" @click="onCancelReplyBox(commentDetails.post_id)">Cancel</button> <button class="comments-items__main--reply-pub button-red" @click="onPostReply('first')">Post a comment</button> </div> </div> </div> </div> <div v-if="showReplyList" class="item-comment__assess--wrapper"> <span class="item-comment__assess__topline"></span> <p class="item-comment__assess__title" >Comments<span class="title-num" v-cloak>{{'(' + replyList.length + ')'}}</span></p> <div class="item-comment__assess__info" v-for="(reply,index) in replyList" :key="index"> <div class="comments-items__usermsg-imgbox"> <img class="comments-items__usermsg-img" v-lazy="reply.reply_avatar" alt="Yami"> <span v-if="reply.reply_vip_name == 'Gold'" class="comments-items__usermsg-vip"><img class="comments-items__usermsg-vipicon" v-lazy="reply.reply_vip_icon" alt="Yami"></span> </div> <div class="item-comment__sidebar__info--right"> <p class="sidebar__info--username" v-cloak>{{ reply.reply_user_name }}<span class="sidebar__info-parent--username" v-if="reply.parent_user_name" v-cloak><i class="reply-words">reply to</i>{{ reply.parent_user_name }}</span></p> <p class="comments-items__main-msg all-content" :class="'all-content_' + reply.reply_post_id" v-cloak>{{ showTranslate(reply) }}<span v-show="isLimit(reply,800)" @click="hideComment($event,reply.reply_post_id)" class="all-content_btn">Show Less</span></p> <p class="comments-items__main-msg" :class="'simple-content_' + reply.reply_post_id" v-cloak>{{ strLimit(reply,800) }}<span v-show="isLimit(reply,800)" @click="showAllComment($event,reply.reply_post_id)" class="summary-content_btn">Show more</span></p> <span v-show="!$isZh && reply.reply_has_translate" class="comments-items__main-rendering" :class="'render_btn_' + reply.reply_post_id" @click="showOriginal(reply.reply_post_id)"><i class="iconfont icon-Translate"></i><i class="iconfont-text">Show Original</i></span> <p class="comments-items__main-render_msg" :class="'render_msg_' + reply.reply_post_id" v-show="reply.reply_has_translate" v-cloak>{{ reply.reply_content }}</p> <p class="comments-items__main--datemsgs"> <span class="comments-items__main--date notranslate" v-cloak>{{ formatTime(reply.reply_in_dtm) }}</span> </p> <div class="comments-items__main--opacity"> <span class="opacity--iconbox" :class="{'like':reply.reply_is_liked}" v-if="!reply.reply_is_liked" @click="onLikeBtn(reply)" v-cloak><i class="iconfont icon-Like"></i>{{ reply.reply_likes_count }}</span> <span class="opacity--iconbox" :class="{'like':reply.reply_is_liked}" v-if="reply.reply_is_liked" @click="onUnLikeBtn(reply)" v-cloak><i class="iconfont icon-Liked"></i>{{ reply.reply_likes_count }}</span> <span class="opacity--iconbox" @click="onReplyBox(reply.reply_post_id)" v-cloak><i class="iconfont icon-Comment"></i>{{ reply.reply_reply_count }}</span> <span class="opacity--iconbox" @click="onToggleMore(reply.reply_post_id,'popup')"><i class="iconfont icon-More"></i><span class="report-popup-btn" :class="'report-popup-btn_' + reply.reply_post_id" @click="onToggleEnterPop(reply.reply_in_user==uid ? 'delete' : 'report',reply.reply_post_id,'list')">{{reply.reply_in_user==uid ? __('Delete') : __('Report')}}</span></span> </div> <div class="comments-items__main--reply-wrapper" :class="' reply-box_' + reply.reply_post_id + ' ' + replyActive"> <textarea cols="30" rows="10" :placeholder="!$isZh ? __('Details are helpful, Please avoid using any inappropriate language comments') : __('reply to') + reply.reply_user_name" @focus="onCommentFocus" @blur="onCommentBlur" v-model="replyContent" class="comments-items__main--textarea" :class="{'empty-value': emptyContent}"></textarea> <p v-show="emptyContent" class="comments-items__main--reply-msg">Please write at least one word</p> <div class="comments-items__main__btns"> <span class="comments-items__main--reply-cancel" @click="onCancelReplyBox(reply.reply_post_id)">Cancel</span> <button class="comments-items__main--reply-pub button-red" @click="onPostReply('nofirst',reply)">Post a comment</button> </div> </div> </div> </div> <p class="item-comment__assess__msg">That’s all the comments so far!</p> </div> </div> </div> </div> </div> <div class="light-slide__wrapper light-slide__write" v-if="showWritePopup" v-cloak @click="onToggleWritePopup()"> <div class="light-slide__container animation-leftSlideIn" :class="{'animation-leftSlideOut': hideWritePopup}" @click.stop> <div class="light-slide__head"> <button class="light-slide__close" @click="onToggleWritePopup()"><i class="iconfont icon-close"></i></button> </div> <div class="light-slide__body"> <div v-if="!isCommentOk"> <div class="light-slide__write-title word-bold">Write a review</div> <div v-if="isPurchased" class="light-slide__write-rating"> <div class="rating-title word-bold">How would you rate this item?</div> <rate-star @score="changeRating"></rate-star> </div> <div class="light-slide__write-textarea__wrapper"> <textarea ref="writeCommentTextarea" cols="30" rows="10" placeholder="Please tell us what you like or dislike." v-model="commentValue" @focus="onWriteCommentFocus" @blur="onWriteCommentBlur" class="light-slide__write-textarea" :class="writeCommentStatus"> </textarea> <p v-show="writeCommentStatus == 'error'" class="light-slide__write-textarea-errinfo">Please add your comment.</p> </div> <img-upload @choosed="uploadCommentPhoto"></img-upload> <div v-if="!isCommented"> <light-input :input-value="nickname" :is-error="isNicknameError" :error-info="nicknameErrorInfo" input-placeholder="Nickname" @change="changeNickname" user-class="light-slide__write-nickname" ></light-input> <ul class="light-slide__write-nickname-list"> <li>A nice nickname will make your comments more popular!</li> <li>The nickname in your account will be changed to the same as here.</li> </ul> </div> <button class="light-slide__write-submit" @click="submitWriteComment">Submit</button> </div> <div v-else> <div class="light-slide__write-title word-bold">Thanks for your review</div> <div class="light-slide__write-desc">Our community rely on great reviews like yours to find the best of Asia.</div> <button v-if="isBeEvaluated" class="light-slide__write-success-btn" @click="redirectBeEvaluatedPage">Continue review</button> <button v-else class="light-slide__write-success-btn" @click="onToggleWritePopup">OK</button> </div> </div> </div> </div> <div v-cloak class="item-comments__popup--wrapper" v-if="showDeletePop || showReportPop" @click="onClosePop()"> <div class="item-comments__popup " :class="showReportPop ? 'report-popup' : showDeletePop ? 'delete-popup' : '' " @click.stop> <button class="delete-popup__close" @click="onClosePop()"> <i class="iconfont icon-close delete-popup__close__icon"></i> </button> <div class="report-popup-content" v-if="showReportPop"> <p class="item-comments__popup--tit">Report</p> <!-- // 2022/4/6 中文不显示 by linlin --> <p class="item-comments__popup--tip">If you find this content inappropriate and think it should be removed from the Yami.com site, let us know please.</p> <p class="item-comments__popup--report-term" v-for="(report, index) in reportIdList" :key="report.reason_id + 'report' + index"> <label class="lt-radio"> <span class="lt-radio-circle"> <span :class="reportId == report.id ? 'lt-radio-checked' : 'lt-radio-unchecked'"> <span class="check-icons" v-show="reportId == report.id"></span> </span> <input class="lt-radio-input" type="radio" :value="report.id" :checked="reportId == report.id" @change="onToggleReportId(report.id)"> </span> <span :data-source="JSON.stringify(report)" class="lt-radio-desc" :class="reportId == report.id ? 'desc-black' : ''" v-cloak>{{report.name}}</span> </label> </p> <button class="form-confirm-btn button-red" @click="onReportBtn()">Report</button> <span class="form-cancel-btn" @click="onClosePop()">Cancel</span> </div> <div class="delete-popup-content" v-if="showDeletePop"> <p class="item-comments__popup--tit">Are you sure to delete your review?</p> <button class="form-confirm-btn button-red" @click="onDeleteBtn()">Delete</button> <span class="form-cancel-btn" @click="onClosePop()">Cancel</span> </div> </div> </div> <input type="hidden" name="good_id" value="43310"> <input type="hidden" name="item_number" value="3118022491"> </div> <div class="recommend-container"> <div class="recommend-footprint__wrapper" v-show="itemListHistory && itemListHistory.length > 0" v-cloak data-observetrack="module-history"> <div class="recommend-footprint__list"> <p class="recommend-footprint__title">You’ve Recently Viewed</p> <div class="swiper-footprint__list" data-max="32"> <div class="swiper-container"> <item-history :show-sale="true" :item-list-history="itemListHistory" @onrestock=onRestock @addtocart=addToCart></item-history> </div> <div class="swiper-button-container"> <div class="swiper-button-prev"> <i class="iconfont icon-arrow-left"></i> </div> <div class="swiper-button-next"> <i class="iconfont icon-arrow-right"></i> </div> </div> </div> </div> </div> <input class="js-itemnumber" type="text" value="3118022491" hidden> <div class="light-slide__wrapper" v-if="showSlide" @click="toggleSlide()" v-cloak> <div class="light-slide__container animation-leftSlideIn" :class="{'animation-leftSlideOut': hideSlide}" @click.stop> <div class="light-slide__head"> <button class="light-slide__close" @click="toggleSlide()"><i class="iconfont icon-close"></i></button> </div> <div class="light-slide__body"> <div class="slide-content"> <div class="slide__brand__title"> About the brand </div> <p class="slide__brand__h1">Jingdong book</p> <div class="slide__brand__text"> </div> </div> </div> </div> </div> </div> <footer class="cms-footer--wrapper" data-observetrack="module-footer" style="display: none;"> <div class="cms-footer"> <div class="footer__content"> <div class="footer__content__left"> <div data-source="nb_footer_menu_en" class="footer__content__menu"> <div class="footer__menu__box"> <div class="footer__menu__box__col"> <p class="footer__menu__box__title word-bold">About Yami</p> <a href="https://www.yamibuy.com/en/article/473630" class="footer__menu__box__text" >About Us</a > <a href="https://www.yamibuy.com/en/article/474099" class="footer__menu__box__text" >Quality Guarantee</a > <a href="https://www.yamibuy.com/en/article/473953" class="footer__menu__box__text" >Contact Us</a > <a href="https://www.yamibuy.com/en/article/474043" class="footer__menu__box__text" >Join Us</a > <a href="https://www.yamibuy.com/en/collections" class="footer__menu__box__text" target="_blank" >Selected Collections</a > </div> <div class="footer__menu__box__col"> <p class="footer__menu__box__title word-bold">My Yami</p> <a href="https://www.yamibuy.com/en/article/474098" class="footer__menu__box__text" >Points</a > <a href="https://www.yamibuy.com/en/article/1065505" class="footer__menu__box__text" >Rewards</a > <a href="https://www.yamibuy.com/en/article/474096" class="footer__menu__box__text" >Referral Program</a > </div> </div> <div class="footer__menu__box"> <div class="footer__menu__box__col"> <p class="footer__menu__box__title word-bold">Help</p> <a href="https://www.yamibuy.com/en/article/474097" class="footer__menu__box__text" >FAQ</a > <a href="https://www.yamibuy.com/en/article/474092" class="footer__menu__box__text" >Fulfilled by Yami</a > <a href="https://www.yamibuy.com/en/article/474095" class="footer__menu__box__text" >Yami Marketplace</a > <a href="https://www.yamibuy.com/en/article/474093" class="footer__menu__box__text" >Return Policy</a > <a href="https://www.yamibuy.com/en/article/474100" class="footer__menu__box__text" >Price Protection Policy</a > <a href="https://www.yamibuy.com/en/article/1353886" class="footer__menu__box__text" >1-Day Delivery</a > </div> </div> <div class="footer__menu__box"> <div class="footer__menu__box__col"> <p class="footer__menu__box__title word-bold">Make Money with Us</p> <a href="https://www.yamibuy.com/en/seller-located" class="footer__menu__box__text" >Sell Products on Yami</a > <a href="https://www.yamibuy.com/en/article/1757849" class="footer__menu__box__text" >Supply to Yami</a > </div> <div class="footer__menu__box__col"> <p class="footer__menu__box__title word-bold">Contact Us</p> <span class="footer__menu__box__text">1-800-407-9710</span> <span class="footer__menu__box__text">help@yamibuy.com</span> <a href="javascript:void(0);" onclick="openFeedback()" class="footer__menu__box__text trade-hidden" >Feedback</a > </div> </div> </div> </div> <div class="footer__content__right"> <div class="footer__content__right__top"> <p class="footer__content__right__title">Let’s keep in touch</p> <div class="footer__content__right__link"> <a aria-label="Follow Yami On Facebook" class="right__link__icon" href="https://www.facebook.com/yamibuy/" target="_blank" title="facebook"><i class="iconfont icon-follow-FB"></i></a> <a aria-label="Follow Yami On Twitter" class="right__link__icon" href="https://twitter.com/yamibuy" target="_blank" title="twitter"><i class="iconfont icon-follow-twitter"></i></a> <a aria-label="Follow Yami On Youtube" class="right__link__icon" href="https://www.youtube.com/channel/UCkDn4U7qWgqBS4RgBFCvPxw" target="_blank" title="youtube"><i class="iconfont icon-follow-YouTube"></i></a> <a aria-label="Follow Yami On Instagram" class="right__link__icon" href="https://www.instagram.com/yamibuy/" target="_blank" title="instagram"><i class="iconfont icon-follow-ins"></i></a> </div> <div class="footer__content__right__subscribe"> <fieldset> <legend class="sr-only">Email</legend> <label for="email__sub__input" class="sr-only">Email</label> <input id="email__sub__input" class="subscribe__input" type="text" placeholder='Email'> <button class="subscribe__btn">Subscribe</button> </fieldset> <p class="subscribe__err">The email format is not correct, please re-enter!</p> <p class="subscribe__empty">Please enter an email</p> </div> </div> <div class="footer__content__right__bottom"> <p class="right__app__title">Shop on the go. Get the app.</p> <div class="right__app__content"> <a href="https://itunes.apple.com/us/app/yamibuy-food-drinks-beauty/id981366229?ls=1&mt=8" target="_blank" class="right__app__btn"> <i class="right__app__btn__icon iconfont icon-download-iOS"></i> <span class="right__app__btn__text">App Store</span> </a> <a href="https://play.google.com/store/apps/details?id=com.yamibuy.yamiapp" target="_blank" class="right__app__btn"> <div class="right__app__btn__icon sprite-icon-googleplay"></div> <span class="right__app__btn__text">Google Play</span> </a> </div> </div> </div> </div> <div class="footer__copyright"> <div class="footer__copyright__icons"> <a class="copyright__icon copyright__inc" href="https://www.inc.com/profile/yamibuy" target="_blank" title="inc-500"> <img width="22" height="18" src="//cdn.yamibuy.net/images/cn/common/inc-500-logo-gray.png" alt="Yami"> </a> <span tabindex="0" class="copyright__icon copyright__veri" id="siteseal"> <script> window.addEventListener("load", function () { // RP-8021 延迟加载getSeal,它加载超时会阻塞页面主进程 setTimeout(function() { window.loadScript(["https://seal.godaddy.com/getSeal?sealID=hUim1TDlMg8DNdPXW3X1bickFOFx7kZsdxhCM1u6wvoT8J3jjWumXxm5xeCa&defer=1"]); }, 10000); }); </script> </span> <i class="copyright__icon iconfont icon-card-gray-visa"></i> <i class="copyright__icon iconfont icon-card-gray-MasterCard"></i> <i class="copyright__icon iconfont icon-card-gray-discover"></i> <i class="copyright__icon iconfont icon-card-gray-American-e"></i> <i class="copyright__icon iconfont icon-card-gray-PayPal"></i> <i class="copyright__icon iconfont icon-card-gray-UnionPay"></i> <i class="copyright__icon iconfont icon-payment-Alipay"></i> <i class="copyright__icon iconfont icon-payment-wechatpay"></i> </div> <!-- RP-6466 增加无障碍声明和footer调整 --> <p class="footer__copyright__text" data-source="nb_footer_copyright_menu_en" style="font-size: 12px;color:#999;">© Copyright 2012-2024 Transocean Resources Management, Inc.</p> <ul class="footer__copyright__menu__box" style="display: flex;font-size: 12px;margin-top:8px;"> <li><a href="https://www.yamibuy.com/en/article/474101" style="margin-right: 24px;color:#999;">Terms of Use</a></li> <li><a href="https://www.yamibuy.com/en/article/474103" style="margin-right: 24px;color:#999;">Privacy Policy</a></li> <li><a href="https://www.yamibuy.com/en/article/1053374" style="margin-right: 24px;color:#999;">Cookie Policy</a></li> <li><a href="https://www.yamibuy.com/en/article/1746597" style="margin-right: 24px;color:#999;">Accessibility</a></li> <li><a href="https://cdn.yamibuy.net/statics/libraries/yamibuy/Certificates/images/business_license.png" style="margin-right: 24px;color:#999;" target="_blank">Business license</a></li> <li><button id="ot-sdk-btn" style="margin-right: 24px !important;color: #999 !important;border: 0px !important;padding: 0px !important;font-size: 12px !important;" class="ot-sdk-show-settings">Your Privacy Choices<img style="margin-left:4px;position:absolute" src="https://cdn.yamibuy.net/statics/libraries/yamibuy/images/ccpa-optout-icon.svg" alt="Yami"></button></li> </ul> </div> <div class="floating-window"> <div id="floatingWindow" v-cloak> <invite></invite> <email-sub></email-sub> </div> <div class="cookie" style="display: none"> <img class="cookie__left" src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/images/cute.png" width="120px" height="76.5" alt="Yami"> <div class="cookie__right"> <p class="cookie__right__title"> We use cookies for a better experience </p> <p class="cookie__right__conent "> To manage your cookie preferences, visit our <a class="cookie__right__conent__link" href="https://www.yamibuy.com/en/article/1053374">Cookie Policy</a> page to learn more. </p> <button class="cookie__right__btn">Got it</button> </div> </div> </div> </div> <div class="footer-bg--wrapper"> <div class="footer-bg--left"></div> <div class="footer-bg--right"> <div class="footer-bg--right-top"></div> <div class="footer-bg--right-bottom"></div> </div> <div class="footer-bg--bottom"></div> </div> </footer> <div class="toast-wrapper" style="display: none;"> <div class="toastbox"> <p class="toastbox__title">Subscribe successfully!</p> <p class="toastbox__text"> You will receive an email shortly </p> <p class="toastbox__text"> at : <span class="toastbox__value"></span> </p> <i class="toastbox__close iconfont icon-close"></i> </div> </div> <script> document.addEventListener('DOMContentLoaded', function () { setTimeout( function() { window.loadScript(['https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/cms-footer.c4932d9da9aaf19b67f6.js']) window.loadScript(['https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/floating-window.bdc8424a872b01b894c9.js']) document.querySelector('.cms-footer--wrapper').style.display = 'block'; }, 0); }); </script> <input class="js_recommend_experiment_id" type="text" value="6" hidden> <!-- CodeInject:before body script --> <!-- Global site tag (gtag.js) - Google Analytics --> <script src="https://www.googletagmanager.com/gtag/js?id=UA-39051355-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-39051355-1'); </script> <!-- Pixel start --> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1739983232882369&ev=PageView&dpo=LDU&dpoco=0&dpost=0&noscript=1" alt="Yami"/> </noscript> <script>!function(e){if(!window.pintrk){window.pintrk = function () { window.pintrk.queue.push(Array.prototype.slice.call(arguments))};var n=window.pintrk;n.queue=[],n.version="3.0";var t=document.createElement("script");t.async=!0,t.src=e;var r=document.getElementsByTagName("script")[0]; r.parentNode.insertBefore(t,r)}}("https://s.pinimg.com/ct/core.js");pintrk('load', '2612598311750');pintrk('page');</script><noscript><img height="1" width="1" style="display:none;" alt="Yami" src="https://ct.pinterest.com/v3/?event=init&tid=2612598311750&noscript=1" /></noscript> <script class="pixelScript" type="text/javascript"> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('dataProcessingOptions', ['LDU'], 0, 0); fbq('init', '1739983232882369'); fbq('track', 'PageView'); // // // // </script> <script type="text/javascript"> fbq("track", "ViewContent", { content_type: "product", content_ids: [43310], value: "43.69", currency: "USD" }); </script> <!-- Pixel end --> <script src="//cdn.yamibuy.net/statics/libraries/swiper/3.4.2/swiper.min.js"></script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/manifest.05ea2391885f87a0e9cf.js" fetchpriority="high"></script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/vendor.49773c503f89ac8bf561.js" fetchpriority="high"></script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/yamibuy-analytics.cc451c7f92de3153b87d.js"></script> <!-- PayPal Shopping BEGIN --> <script name="paypalBaseJs"> ; (function (a, t, o, m, s) { a[m] = a[m] || []; a[m].push({ t: new Date().getTime(), event: 'snippetRun' }); var f = t.getElementsByTagName(o)[0], e = t.createElement(o), d = m !== 'paypalDDL' ? '&m=' + m : ''; e.async = !0; e.src = 'https://www.paypal.com/tagmanager/pptm.js?t=xo&id=' + s + d; f.parentNode.insertBefore(e, f); })(window, document, 'script', 'paypalDDL', 'yamibuy.com'); </script> <!-- PayPal Shopping Solutions END --> <script> document.addEventListener('DOMContentLoaded', function () { window.loadScript([ '//cdn.yamibuy.net/statics/libraries/swiper/3.4.2/swiper.min.js', '//cdn.yamibuy.net/statics/libraries/qrcode/node-qrcode.min.js' ]) }); </script> <script crossorigin> document.addEventListener('DOMContentLoaded', function () { window.fbAsyncInit = function() { FB.init({ appId : "1628615350782984", autoLogAppEvents : true, xfbml : true, version : 'v3.1' }); }; (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "https://connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); }); </script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/laroute.3823af86c5df71d66143.js"></script> <script> window.localObj = {"common.website.title":"Yamibuy.com: One-stop shop for Asian brands.","common.error.error_400_title":"Oops, page not found...","common.error.error_400_content":"We couldn\u2019t find the page.","common.error.error_404_title":"Oops\u2026 looks like you got lost","common.error.error_404_content":"Something went wrong. Looks like this page doesn\u2019t exist anymore.","common.error.error_500_title":"Internal server error","common.error.error_500_content":"The server is under maintenance, Please visit later. ","common.error.error_busy_title":"Oops, System Busy\u2026","common.error.error_busy_content":"The number of visitors is currently too high, please refresh and try again.","common.error.error_busy_btn":"Refresh Now","common.error.error_checkout_title":"Oops, page not found...","common.error.error_checkout_content":"We couldn\u2019t find the page.","common.error.error_back_cart":"Back to Cart","common.error.error_back_home":"Back Home","lang":"\u4e2d\u6587","contactPrefix":"Please contact to","contactSuffix":"talk about Order \u0026 Return~","wordsLimit":":count Words","itemsCount":" items","itemCount":" item","searchEmpty":"Your search did not match any products.\u003Cbr\/\u003ETry something like using more general terms, or checking your spelling.","searchAboutEmpty":"No results for \u201c:search_key\u201d","searchEmptySuggestions":"No results found for \u201c:search_key\u201d, Try these suggestions:","searchResultShowingMoreA":"Showing results for \u201c:key\u201d\uff0cSearch instead for ","searchResultShowingMoreB":" ","searchEmptyDesc":"Still can\u0027t find what you\u0027re looking for?","searchEmptyTellus":"Contact Yami","searchSuggestionsPrompt":"Try a different search term or check out some of our suggestions below.","filterOptionsMessage":"Try removing some filters or check out some of our suggestions below.","tellUs":"Tell us what you want","checkIn":"Submit","soldByPrefix":"Sold by","soldBysuffix":" ","channel.seo.prefix":"Yamibuy.com - ","channel.seo.new_arrivals_keywords":"New Arrivals, Yamibuy.com","channel.seo.clearance_keywords":"Clearance,Sale,Yamibuy.com,Great Deals,Lowest Price,Discounts","channel.seo.flash_sale_keywords":"Flash Sale, Limited Time Only, Discount, Deals, Reduced Price, Yamibuy.com","channel.seo.hot_sale_keywords":"","shipingFreeMsg":"Shipping Fee $:shipping_fee(Free shipping over $:free_shipping_amount)","article.Points":"Points","estArrivesBetween":"Est. arrives between \u003Cspan class=\u0022text-red\u0022\u003E:timeStartStr - :timeEndStr\u003C\/span\u003E","exp_time":"Get it \u003Cspan class=\u0027text-red\u0027\u003E:time\u003C\/span\u003E, if you order \u003Cspan class=\u0027text-red\u0027\u003Ebefore :nowTime\u003C\/span\u003E","exp_time_no_now":"Get it \u003Cspan class=\u0027text-red\u0027\u003E:time\u003C\/span\u003E","exp_time_interval":"Est. arrival \u003Cspan class=\u0027text-red\u0027\u003E:start - :end\u003C\/span\u003E if you order \u003Cspan class=\u0027text-red\u0027\u003Ebefore :nowTime\u003C\/span\u003E","exp_time_interval_no_now":"Est. arrival \u003Cspan class=\u0027text-red\u0027\u003E:start - :end\u003C\/span\u003E","reportSuccess":"Thanks for Feedback","item.promise.details":"View details","Sold by :seller_name":"Sold by :seller_name","item.gift.SoldOut":"Sold Out","AVERAGE":"AVERAGE","item.gift.group.price":"Price ","resetpassword.VerificationCode*":"Verification Code*","resetpassword.NewPassword*":"New Password*","Reset password email has been sent":"Reset your password","Didn\u0027t receive the email? It may take a few minutes or check your spam folder":"Code will send your email after soon.","promotion":"Sale ends in ","Popup.Write a review":"Write a review","pinPeoplePrefix":"Ends in","pinPeopleSuffix":" ","Righnow.Start":"Start","Lottery.Start":"Start","less_than_one_discount":"","switch_btn":"\u4e2d\u6587","nameHome":"Home","GiftCard.Change":"Change","main.Clearance":"Sale","search.seo.title_empty":"Search Result - Yamibuy.com","search.seo.keywords_empty":"Yamibuy.com,Yamibuy,online shopping,asian,food,beauty,appliances,health,collectibles,baby products,bedding,bath,accessories,toys,personal care","search.seo.description_empty":"Yamibuy.com is the largest online shop for Asian food, beauty, tools and houseware, and health products in the United States. The biggest selection of Asian products you can find.","seller.seo.title":":name | Yami","seller.seo.keywords":":name, :category, Yamibuy.com, Yami","seller.seo.description":"Welcome to the :name Store at Yami. Online shopping for :category and more.","Limited":"Limited :count\/Order","PurchasedCount":"Purchased","album items":"Items","Popup.Yami-China FC":"Yami-China FC","ShippingTxt":" ","Email.Succeeded":"Succeeded","Set.Get Restock Alerts":"Get Restock Alerts","Revise.Edit":"Edit","Hot Sale View More":"View More","Common View More":"View More","Hot View all":"View all :name","EmailSub.Privacy Policy":"Privacy Policy","album_items":"Items","album_purchased":"Purchased","album_folling":"Following","album_unFollow":"Follow","album_page_title":":album - Yamibuy.com","album_page_keywords":":tags,Yamibuy.com","album_page_description":"Yamibuy.com - Discover :album at Yamibuy.com.","ada_header_search_input":"Search input","ada_header_search_button":"Search button","ada_add_to_cart":"Add to Cart","ada_email_share":"Email Share","ada_facebook_share":"Facebook Share","ada_view_album":"View Album","comment_writeReview":"Write a Review","comment_rating":"Your Rating","comment_comments":"Comments","comment_textareaPlaceholder":"Details are helpful, write a review now\u2026","comment_emptyErr":"Please enter the content","comment_addPicture":"Add Pictures","comment_submit":"Submit","comment_failed":"Failed","comment_ingsMaxNum":"upload 9 picture at most","comment_success":"Succeeded","comment_pageTitle":"Reviews","comment_thank_you":"Thank You!","comment_thank_you_text":"Thanks for doing a good deed! Your insights will help other customers make informed decisions.","comment_continue_to_write_reviews":"Continue to write reviews","comment_keep_shopping":"Keep Shopping","comment_seconds":"seconds","comment_time_out_text":"It\u2019ll go to the homepage after","ada_close_button":"Close","ada_submit_button":"Submit Button","ada_price_range":"Price Range","ada_min_cart":"Min Cart","ada_zipcode_editor":"Update Zipcode","ada_facebook":"Follow Yami On Facebook","ada_twitter":"Follow Yami On Twitter","ada_youtube":"Follow Yami On Youtube","ada_instagram":"Follow Yami On Instagram","ada_weibo":"Follow Yami On Weibo","ada_storypage":"To Yami Storypage","comment_write_a_review":"Write a Review","Know.OK":"OK","seo.default.title":"Yami. Best of Asia, delivered.","seo.default.description":"A wide selection of groceries, snacks, beauty, and home goods from China, Korea, Japan, Taiwan, HK, Macau, and other Asian regions. Free shipping with orders $49+.","seo.default.keywords":"Yamibuy.com, Yami, Yamibuy, online shopping, online supermarket, Asian groceries, Asian food, Asian snacks, Chinese food, Chinese snacks, Japanese food, Japanese snacks, Japanese beauty products, Korean food, Korean snacks, Korean beauty products, Japanese beauty products, skincare products, cosmetics, home appliances, health products, baby products, personal care, housewares, Chinese books","ada_goBack_button":"Go Back","got_it":"Got It","delete_account_msg":"Tapping \u0022Delete Account\u0022 will delete your Yami account :email. This action can\u0027t be undone.","Favorites_my":"Favorites","Show more.goods":"Show more","sellers":":number sellers","seller":":number seller","items":":number items","item":":number item","Fby_seller":"Fulfilled by Yami","activity.title":"Yamibuy.com - :content","activity.common_home":"Home","activity.item_card_seckillend":"Sold Out","activity.coupon_clip":"Clip now","activity.coupon_clipped":"Clipped","activity.coupon_used":"Applied","activity.coupon_over":"End","activity.coupon_comming":"Waiting","activity.coupon_clip_all":"Clip for All","activity.coupon_clip_count":"Clip for :count Coupons","activity.coupon_clipped_alert":"You have already clipped this coupon.","activity.coupon_used_alert":"You have used this coupon.","activity.coupon_over_alert":"No more coupons.","activity.coupon_receive_success":"The coupon was successfully received!","activity.coupon_not_start":"The activity has not been started, please try again later. ","activity.flash_coming":"New Deals","activity.flash_doing":"On Sale Now","activity.flash_over":"End","activity.flash_coming_alert":"Flash sales are about to start","activity.flash_end_alert":"Flash sale end","activity.seckill_over_already":"This session of hot sale is over.","activity.seckill_confirm":"OK","activity.seckill_doing":"Selling","activity.seckill_over":"End","activity.seckill_start":"Coming Soon","activity.seckill_coming":"Coming","activity.seckill_finish":"Sale End","activity.seckill_remaining":"Hot sale ends in ","activity.seckill_distance":"Hot sale starts in ","activity.seckill_status_start":"","activity.seckill_status_start_at":"Start at","activity.seckill_time_tomorrow":"","activity.seckill_status_over":"End","activity.seckill_status_coming":"Coming","activity.seckill_status_tomorrow":"","activity.seckill_status_doing":"Selling","activity.seckill_status_new":"A new session of hot sale has started, go to check it!","activity.seckill_status_view":"Check it!","activity.seckill_end_distance":"This round ends in ","activity.seemore":"View more","activity.turntable_rule":"Rules","activity.turntable_spend_cost":"Spend :cost points for this round,","activity.turntable_have":"","activity.turntable_lottery_chances":"rounds left for lottery rewards","activity.turntable_lottery_chance":"round left for lottery rewards","activity.turntable_point_spend":"Spend","activity.turntable_point_left":"points for this round,","activity.turntable_point_left_en":"points left","activity.turntable_share_chance":"Share for more chances","activity.turntable_share":"Share with friends","activity.turntable_share_times1":"","activity.turntable_share_times2":"times left to share","activity.turntable_share_happy":"Share","activity.turntable_share_win":"Share with friends for more rewards","activity.turntable_share_scan":"Scan QR-code to share","activity.turntable_or":"Or","activity.turntable_chance_over":"Lottery chance has been used up","activity.turntable_share_get_chance":"Share for one more chance","activity.turntable_my_prize":"My rewards","activity.turntable_my_prize_empty":"No rewards yet","activity.turntable_timeout_today":"Times has been used up today","activity.turntable_point_over":"Insufficient points","activity.turntable_to_account":"Prizes have been placed in your account","activity.turntable_to_view":"Reward Detail","activity.turntable_to_order":"Place order","activity.turntable_to_use":"Go shopping","activity.turntable_to_contact":"Contact CS","activity.turntable_congratulation":"Congratulations","activity.turntable_date":"Period","activity.turntable_next":"Bravo! Good fortune incoming","activity.turntable_concat_cs":"Contact customer service to get award immediately.","activity.turntable_play_again":"Play again","activity.turntable_share_get":"Share for one more chance","activity.turntable_points":"points","activity.turntable_prize":"Reward","activity.turntable_cost":"Spend points","activity.turntable_action":"Operation","activity.turntable_coupon_relative":"Valid for {time}after clipping","activity.item_card_soldout":"Sold Out","activity.item_card_sale":"Sale","activity.item_card_seckillnow":"Buy now","activity.item_card_seckillwill":"Coming Soon","activity.item_card_view":"End","activity.item_card_buy":"Buy Now","activity.item_card_buynow":"Buy Now","activity.item_card_will":"Coming Soon","activity.item_card_yamibuy":"Fulfilled by Yami","activity.item_card_declare":"Yami-China FC","activity.shop_price":"Final Price","activity.start_time":"Starts in :time","activity.expiring_time":":time Expiring","activity.end_time":"Ends on :time","activity.restock_alert":"Get Restock Alerts","activity.variant":" Options","activity.sale_now":"On Sale Now","activity.upcoming":"Coming Soon:count","activity.seckill_will_start":"Starts :date","activity.seckill_end":"Ends in ","activity.day":"d","activity.am":"am","activity.pm":"pm","activity.copy_link_success":"Copied to pasteboard","activity.year_report_title":"\u5206\u4eab2021\u4e9a\u7c73\u5e74\u5ea6\u5173\u952e\u8bcd","activity.weibo":"Weibo","activity.copy":"Copy link","activity.bundleUnit":"\/piece","activity.packs":" packs","activity.pack":" pack","activity.today":"today","activity.tomorrow":"tomorrow","activity.month":"","activity.add_to_cart_success":"Added Success","activity.add_to_cart_failed":"Failed","activity.item.get_coupon_success":"Sucess! You can check it in Account-Coupons.","activity.gift_card_price":"Pay with Gift Card to get sale price: ","activity.item.endin":"Ends in","activity.ada_detailed_page":"To The Detailed Page","sent_email":"For your account security. Please complete the verification by entering the code that sent to your email \u003Cspan class=\u0027word-bold\u0027\u003E:email\u003C\/span\u003E.","Contact CS":"Contact Us"}; window.localeMaps = [{"abbr":"en","fullName":"English","i18n":"en_US","title":"English","id":1},{"abbr":"zh","fullName":"Chinese","i18n":"zh_CN","title":"\u7b80\u4f53\u4e2d\u6587","id":0},{"abbr":"zht","fullName":"Chinese-T","i18n":"zht","title":"\u7e41\u9ad4\u4e2d\u6587","id":4},{"abbr":"ko","fullName":"Korean","i18n":"ko","title":"\ud55c\uad6d\uc5b4","id":2},{"abbr":"ja","fullName":"Japanese","i18n":"ja","title":"\u65e5\u672c\u8a9e","id":3}]; </script> <script> document.addEventListener('DOMContentLoaded', function () { if(window.isLogin()) { window.loadScript(['https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/app-login.bd454718c3ca627bb0c4.js']) } }); </script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/app.0e764a13533da755ba6e.js" crossorigin></script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/track.53cdc34741bdb043be2f.js" crossorigin fetchpriority="high"></script> <link rel="manifest" href="/firebase-manifest.json"/> <script> document.addEventListener('DOMContentLoaded', function () { window.loadScript([ "https://www.gstatic.com/firebasejs/8.7.0/firebase-app.js", "https://www.gstatic.com/firebasejs/8.7.0/firebase-messaging.js", "https://www.gstatic.com/firebasejs/8.7.0/firebase-analytics.js", ]); (function(){ var firebaseIterval = setInterval(function() { // 有firebase时清除计时器,没有时继续循环 if(!window.firebase || !window.firebase.initializeApp || !window.firebase.analytics){ return } clearInterval(firebaseIterval) firebase.initializeApp({ apiKey: "AIzaSyA43Uud5XDFp-VvATbJMi06A0TBfena1nQ", authDomain: "web-push-4ae8c.firebaseapp.com", projectId: "web-push-4ae8c", messagingSenderId: "204563616925", databaseURL: "https://web-push-4ae8c.firebaseio.com", storageBucket: "web-push-4ae8c.appspot.com", appId: "1:204563616925:web:f3e3bd1103c222ac6ef074", measurementId: "G-JN08G8MDMP", }); firebase.analytics(); var messaging = firebase.messaging(); messaging.usePublicVapidKey("BBMIYjkafQM8Pd2iWK60YoFcD7MBxfAccIvPQRHieP8LuL3ewvSSQa4j2CRP4v4dIEseNzf--0447x5aStNG-44"); var cookieName = "browser_registed"; var cookieTime = "2592000"; var cookiePath = "/"; var cookieDomain = ".yamibuy.com"; if(!getCookie(cookieName) || getCookie(cookieName) != '1') { messaging.requestPermission().then(function(res) { messaging.getToken().then(function(currentToken) { var userToken = getCookie('YMB_TK'); var userId = userToken ? JSON.parse(window.atob(userToken)).data : ''; if (currentToken && userId) { // 创建Iterable用户 axios.post('https://www.yamibuy.com/api/nb/common/iterable/user/update', { "apiKey": "f562f2e17f8a42bcb5a8460f5fa87722", "userId": userId, "dataFields": { "browserTokens": [] }, "preferUserId": true, "mergeNestedObjects": true }).then(function() { // 注册Yamibuy axios.post("https://www.yamibuy.com/api/nb/common/yamibuy/registerBrowserToken", { device_token: currentToken }); // 注册Iterable axios.post("https://www.yamibuy.com/api/nb/common/iterable/registerBrowserToken", { apiKey: "f562f2e17f8a42bcb5a8460f5fa87722", browserToken: currentToken, userId: userId }).then(function(response) { if(response.data.success) { setCookie(cookieName, '1', cookieTime, cookiePath, cookieDomain); } else { setCookie(cookieName, '0', cookieTime, cookiePath, cookieDomain); } }); }); } }).catch(function(err) { console.log(err); }); }).catch(function(err) { console.log(err); }); } messaging.onMessage(function(message) { var userToken = getCookie('YMB_TK'); var userId = userToken ? JSON.parse(window.atob(userToken)).data : ''; axios.post("https://www.yamibuy.com/api/nb/common/iterable/webPushClickTrack", { "apiKey": "f562f2e17f8a42bcb5a8460f5fa87722", 'userId': userId, "preferUserId": true, 'messageId': message.data.messageId, 'campaignId': Number(message.data.campaignId), 'templateId': Number(message.data.templateId) }); if("Notification" in window && message.notification) { var notif = new Notification(message.notification.title, { body: message.notification.body, icon: message.notification.icon, tag: 'eventmessage' }) notif.addEventListener('click', function(event) { event.preventDefault(); var userToken = getCookie('YMB_TK'); var userId = userToken ? JSON.parse(window.atob(userToken)).data : ''; window.open(message.notification.click_action, '_blank'); notif.close(); }); } }); function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) { return unescape(arr[2]); } else { return null; } }; function setCookie(cookieName, cookieValue, time, path, domain) { var time = time ? time : (30 * 3600 * 24); // 参数time以秒为单位,默认cookie有效期为30天 var path = path ? path : "/"; var cookieDomain = domain; if (cookieDomain == null || cookieDomain == "") { var domainEle = document.querySelector(".token-domain"); if (domainEle && domainEle.value) { cookieDomain = domainEle.value; } else { var matches = document.location.hostname.match(/[a-z0-9][a-z0-9\-]+\.[a-z\.]{2,6}$/i); var hostDomain = matches ? "." + matches[0] : ''; if(hostDomain){ cookieDomain = hostDomain; } } } var exdate = new Date(new Date().getTime() + time*1000); // exdate.setDate(exdate.getDate() + time / (3600 * 24)); window.document.cookie = cookieName + "=" + escape(cookieValue) + ";path=" + path + ";expires=" + exdate.toUTCString() + ";domain=" + cookieDomain; }; }, 100); })() }); </script> <script charset="UTF-8" src="https://cdn.yamibuy.net/statics/libraries/yamibuy/plugins/track/sensorsdata.min.js"></script> <script> function sensorsInit() { // RP-5439 【全站分享】-分享落地触发事件,cookie存储参数设置过期时间 // url?utm_source=internal_share&utm_medium={share_channel}&utm_campaign={content_type}&platform={分享平台(android、ios、h5、pc)统一小写}&source_page={scene}&content_title = {xxx}&content_id={xxx} var link = window.location.href; var shareParams = null; if (sensorsGetQueryParam(link, "utm_campaign") && sensorsGetQueryParam(link, "source_page")) { var shareParams = { source: sensorsGetQueryParam(link, "utm_source"), source_page: sensorsGetQueryParam(link, "source_page") || "", share_link: link, content_type: sensorsGetQueryParam(link, "utm_campaign") || "", content_title: sensorsGetQueryParam(link, "content_title") || "", content_id: sensorsGetQueryParam(link, "content_id") || "", parent_id: sensorsGetQueryParam(link, "parent_id") || "" }; if(!shareParams.content_title) { delete shareParams.content_title; } if(!shareParams.content_id) { delete shareParams.content_id; } sensorsSetCookie("shareParams", JSON.stringify(shareParams), 1); } // 【RP-6331】 PC/H5 埋点初始化时新增zipcode参数 var zipcode = sensorsGetCookie('zipcode') || ''; var sensors = window['sensorsDataAnalytic201505']; window.sensors = sensors; window.sensors.init({ server_url: 'https://sensorsdatacollect.yamibuy.net:8106/sa?project=production', show_log: 'off' == "on" ? true : false, heatmap: { clickmap: "default", // 全埋点-Web 元素点击($WebClick) scroll_notice_map: "not_collect", // 全埋点-视区停留事件($WebStay) } }); // 注册公共属性 sensors.registerPage({ platform_type: "PC-Web", app_name: "亚米网", zipcode: '' + zipcode }); // 设置登录的userId var ymb_tk = sensorsGetCookie("YMB_TK"); var userId = ""; try { if (ymb_tk) { ymb_tk = decodeURIComponent(ymb_tk); var decodeToken = JSON.parse(window.atob(ymb_tk)); if (!isNaN(parseInt(decodeToken.data)) && isFinite(decodeToken.data)) { userId = decodeToken.data; } } } catch (error) { console.error("cookie中YMB_TK解码转json失败--> " + error); } if (userId) { var level_name = sensorsGetCookie("level_name") || "Ruby"; // 注册公共属性 window.sensors.registerPage({ is_login: true, is_vip: true, vip_level: level_name, language: "English" }); window.sensors.login(userId); } else { // 注册公共属性 sensors.registerPage({ is_login: false, is_vip: false, vip_level: "", language: "English" }); } // 全埋点-Web 页面浏览($pageview) sensorsSetPageView(shareParams); } function sensorsSetPageView(shareParams) { var trackParams = {}; // 先获取本页面scene,当前一个页面传递了scene时,使用url中的scene // 分类页面时,带入bu_type等参数 var pageName = "www.goods.slug"; var isCategory = (pageName == 'www.category' || pageName == 'www.category.slug'); if (isCategory) { trackParams.bu_type = "category_tree"; trackParams.module_name = "category_main"; trackParams.index = ""; var categoryName = document.querySelector(".h1title") ? document.querySelector(".h1title").innerText : ""; trackParams.content = sensorsGetQueryParam(window.location.href, 'content') || categoryName; } // 搜索页面, 搜索相关逻辑添加后可以去除 if (pageName == 'www.search') { if(!sensorsGetQueryParam(window.location.href, 'bu_type')) { // 搜索 trackParams.bu_type = "search"; trackParams.content = sensorsGetQueryParam(window.location.href, 'q'); var track = sensorsGetQueryParam(window.location.href, 'track'); if (track) { if(track.split("-")[1]){ trackParams.module_name = track.split("-")[1]; // 热搜名字不一样 // if(trackParams.module_name == "hot_search"){ // trackParams.module_name = "search_hotwords"; // } } if(track.split("-")[2]){ trackParams.index = track.split("-")[2]; } if(track.split("-")[3]){ trackParams.content = track.split("-")[3]; } } } } if(document.querySelector("meta[name=scene]") && document.querySelector("meta[name=scene]").content){ trackParams.$title = document.querySelector("meta[name=scene]").content; } if(sensorsGetQueryParam(window.location.href, "bu_type")){ trackParams.bu_type = sensorsGetQueryParam(window.location.href, "bu_type"); } if(sensorsGetQueryParam(window.location.href, "module_name")){ trackParams.module_name = sensorsGetQueryParam(window.location.href, "module_name"); } if(sensorsGetQueryParam(window.location.href, "index") && isCategory == false){ trackParams.index = sensorsGetQueryParam(window.location.href, "index"); } if(sensorsGetQueryParam(window.location.href, "content")){ trackParams.content = sensorsGetQueryParam(window.location.href, "content"); } if(sensorsGetQueryParam(window.location.href, "content_type")){ trackParams.content_type = sensorsGetQueryParam(window.location.href, "content_type"); } // RP-6557 if(sensorsGetQueryParam(window.location.href, "cfid")){ trackParams.component_id = sensorsGetQueryParam(window.location.href, "cfid"); } if(sensorsGetQueryParam(window.location.href, "vid")){ trackParams.video_id = sensorsGetQueryParam(window.location.href, "vid"); } // RP-7442 PC new arrival A/B Testing if(sensorsGetQueryParam(window.location.href, "comp_tit")){ trackParams.component_title = sensorsGetQueryParam(window.location.href, "comp_tit"); } // 活动页content和contentKey使用 if(pageName == 'www.pages.activity') { trackParams.content = ''; trackParams.content_type = 'activity'; } // OP-3487 if(sensorsGetQueryParam(window.location.href, "rank_id")){ trackParams.rank_id = sensorsGetQueryParam(window.location.href, "rank_id"); } if (pageName == 'www.ranking-list.seller' || pageName == 'www.ranking-list.item'){ const ids = ''; const rankId = ids.split('-')[0] || '' trackParams.rank_id = rankId; trackParams.bu_type = 'rank_list'; } // RP-5439 【全站分享】 if (shareParams) { trackParams = Object.assign({}, trackParams, shareParams) } window.sensors.quick("autoTrack", trackParams); } function sensorsGetCookie(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");if(arr=document.cookie.match(reg)){return unescape(arr[2])}else{return null}}; function sensorsSetCookie(name, value, days, cross_subdomain, is_secure) { var cdomain = '', expires = '', secure = ''; if (!cross_subdomain) { var matches = document.location.hostname.match(/[a-z0-9][a-z0-9\-]+\.[a-z\.]{2,6}$/i), domain = matches ? '.' + matches[0] : ''; cdomain = ((domain) ? '; domain=' + domain : ''); } else { cdomain = '; domain=' + cross_subdomain; } if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = '; expires=' + date.toGMTString(); } if (is_secure) { secure = '; secure'; } var new_cookie_val = name + '=' + encodeURIComponent(value) + expires + '; path=/' + cdomain + secure; document.cookie = new_cookie_val; return new_cookie_val; } function sensorsGetQueryParam(url, param) { param = param.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]'); var regexS = '[\\?&]' + param + '=([^&#]*)', regex = new RegExp(regexS), results = regex.exec(url); if (results === null || (results && typeof (results[1]) !== 'string' && results[1].length)) { return ''; } else { return decodeURIComponent(results[1]).replace(/\+/g, ' '); } }; sensorsInit(); </script> <script> window.seckillData = []; </script> <script> document.addEventListener('DOMContentLoaded', function () { window.loadScript(['https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/item.46866901338c32398126.js','https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/comment.26078d58243b954fe807.js','https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/recommend.2428d3b2f7150e167524.js']) }); </script> <script src="https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/cms-header.b8e05cc2136279cd56d9.js" fetchpriority="high"></script> <script> document.addEventListener('DOMContentLoaded', function () { window.loadScript(['https://cdn.yamibuy.net/statics/prd-k8s/ec-website-nb/website/nb/js/cms-floatbox.a60ed0db40db0448edf3.js?cid=componentId']) }); </script> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KCFPTZ2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!--CodeInject:after body script--> <!-- live chat初始化代码 start --> <link rel="stylesheet" type="text/css" href="//cdn.yamibuy.net/statics/libraries/yamibuy/plugins/saleforce/index_v3.css"> <script type='text/javascript' src='//service.force.com/embeddedservice/5.0/esw.min.js'></script> <script>!function(){function e(){var e=function(e){let t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),n=window.location.search.substr(1).match(t);return null!=n?decodeURIComponent(n[2]):null}("language"),t=location.pathname.split("/"),n="en_US";return e?"zh"!=e&&"zh_CN"!=e||(n="zh_CN"):t.length>1&&"zh"==t[1]&&(n="zh_CN"),n}var t="en_US"==e()?"//cdn.yamibuy.net/statics/libraries/yamibuy/plugins/saleforce/prechatBackgroundEN.png":"//cdn.yamibuy.net/statics/libraries/yamibuy/plugins/saleforce/prechatBackgroundZH.png",n=function(n){embedded_svc.settings.displayHelpButton=!0,embedded_svc.settings.language=e(),embedded_svc.settings.prechatBackgroundImgURL=t,embedded_svc.settings.defaultMinimizedText="Chat with Us","zh_CN"==e()?(embedded_svc.settings.defaultMinimizedText="联系我们",embedded_svc.settings.loadingText="加载中"):(embedded_svc.settings.defaultMinimizedText="Chat With Us",embedded_svc.settings.loadingText="Loading"),embedded_svc.settings.directToButtonRouting=function(t){return"zh_CN"==e()?"5734o000000TaL1":"5736A000000M1kB"},embedded_svc.settings.enabledFeatures=["LiveAgent"],embedded_svc.settings.entryFeature="LiveAgent",embedded_svc.init("https://yamibuy.my.salesforce.com","https://yamibuyliveagent.secure.force.com",n,"00D6A000002EgNg","Snap_Ins_Chat_Agents",{baseLiveAgentContentURL:"https://c.la1-c1-iad.salesforceliveagent.com/content",deploymentId:"5726A000000MFGT",buttonId:"5736A000000M1kB",baseLiveAgentURL:"https://d.la1-c1-iad.salesforceliveagent.com/chat",eswLiveAgentDevName:"Snap_Ins_Chat_Agents",isOfflineSupportEnabled:!0})};if("www.yamibuy.com"==location.host || window.location.pathname.indexOf("/orders/") > -1 || /\/(checkout|checkout\/result)|(recharge|recharge\/result)$/.test(window.location.pathname))if(window.embedded_svc)n("https://service.force.com");else{var s=document.createElement("script");s.setAttribute("src","https://yamibuy.my.salesforce.com/embeddedservice/5.0/esw.min.js"),s.onload=function(){n(null)},document.body.appendChild(s)}}();</script> <script >document.addEventListener('DOMContentLoaded', function() { if (typeof navigator !== 'undefined' && typeof document !== 'undefined') { let isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); if (isSafari && document.body) { document.body.classList.add('in-safari'); } } });</script> <!-- live chat初始化代码 end --> <!-- 性能分析代码 start --> <script type="module"> import { onCLS, onFID, onLCP, onTTFB, onFCP, onINP } from 'https://cdn.yamibuy.net/statics/libraries/yamibuy/plugins/vitals/web-vitals.attribution.js'; function getNetworkType() { if (navigator.connection && navigator.connection.effectiveType) { switch (navigator.connection.effectiveType) { case 'wifi': return 'WIFI'; case '2g': return '2G'; case '3g': return '3G'; case '4g': return '4G'; case '5g': return '5G'; default: return 'UNKNOWN'; } } else { // 如果无法获取到网络情况,则返回 UNKNOWN return 'UNKNOWN'; } } function format_metric_rating(value, left_separator, right_separator) { var metric_rating = 'needs-improvement'; if (value < left_separator) { metric_rating = 'good'; } if (value >= right_separator) { metric_rating = 'poor'; } return metric_rating; } function sendToGoogleAnalytics({ name, value, id, attribution }) { var eventParams = { metric_name: name, metric_value: value, value: value, event_category: 'Web Vitals', metric_domain : window.location.host, metric_network: getNetworkType(), metric_id: id, // 聚合事件所需 metric_url: window.location.href, // 调试参数 metric_rating: 'N/A', //'good' | 'needs-improvement' | 'poor', debug_info: '', } switch (name) { case 'CLS': eventParams.debug_info = attribution.largestShiftTarget; eventParams.metric_rating = format_metric_rating(value, 0.1, 0.25); eventParams.metric_standard = '0.1'; break; case 'FID': eventParams.debug_info = attribution.eventTarget; eventParams.debug_type = attribution.eventType; eventParams.debug_time = attribution.eventTime; eventParams.debug_load_state = attribution.loadState; eventParams.metric_rating = format_metric_rating(value, 100, 300); eventParams.metric_format_value = value.toFixed(2) + 'ms'; eventParams.metric_standard = '100ms'; break; case 'LCP': eventParams.debug_info = attribution.element; eventParams.metric_rating = format_metric_rating(value, 2.5 * 1000, 4.0 * 1000); eventParams.metric_format_value = (value/1000).toFixed(2) + 's'; eventParams.metric_standard = '2.5s'; break; case 'INP': eventParams.debug_info = attribution.eventTarget; eventParams.debug_type = attribution.eventType; eventParams.debug_time = attribution.eventTime; eventParams.debug_load_state = attribution.loadState; eventParams.metric_rating = format_metric_rating(value, 200, 500); eventParams.metric_format_value = value.toFixed(2) + 'ms'; eventParams.metric_standard = '200ms'; break; case 'FCP': eventParams.debug_info = attribution.largestShiftTarget; eventParams.metric_rating = format_metric_rating(value, 1.8 * 1000, 3.0 * 1000); eventParams.metric_format_value = (value/1000).toFixed(2) + 's'; eventParams.metric_standard = '1.8s'; break; case 'TTFB': // eventParams.debug_info = attribution.largestShiftTarget; eventParams.metric_rating = format_metric_rating(value, 800, 1800); eventParams.metric_format_value = value.toFixed(2) + 'ms'; eventParams.metric_standard = '800ms'; break; } //console.log(eventParams) gtag && gtag('event', name, eventParams); } onLCP(sendToGoogleAnalytics); onINP(sendToGoogleAnalytics); onCLS(sendToGoogleAnalytics); onFCP(sendToGoogleAnalytics); onFID(sendToGoogleAnalytics); onTTFB(sendToGoogleAnalytics); </script> <!-- 性能分析代码 end --> </main> </body> </html>