[Trao đổi khuôn mặt] Những cảnh nóng kín đáo của Christina Hendrix...","lastmod":"2026-07-11","duration":"10:26","url":"/play/19164546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvOTQ3OGQwNTJjMjg4MDE2NGU0MjNjNTY4MWQ1ZjQ1MjIuanBn.cache","vod_id":19165801,"title":"Tôi muốn có con với vợ mình, nhưng vì tôi vô sinh nên phải nhờ người hiến tinh trùng. Erik Ozaki Erika Misses's Plain Face - Emanuel","lastmod":"2026-07-11","duration":"02:00:56","url":"/play/19165801.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTJhMTgxZjFmMzkxY2Y5MzFkMWExZWM5YmM4ZTRjNDYuanBn.cache","vod_id":19149409,"title":"[Cô gái nửa có chủ đích, nửa hoang dã] Ema Kawakita, 27 tuổi, là một cô gái nghiệp dư biến thái làm việc trong một cơ quan chính phủ nhưng thường xuyên lui tới các câu lạc bộ tình dục. (PKPD-400)","lastmod":"2026-03-21","duration":"02:08:52","url":"/play/19149409.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2U4NTJkYTRkODE1ZmZjZjNiMzY4Y2FmNjc2MjE3ZjUuanBn.cache","vod_id":18961663,"title":"[Chưa cắt] 300NTK-793 [Cuộc thác loạn tình dục bốn người đầu tiên giữa một người đẹp quyến rũ và một cô gái da trắng, thẳng thắn]","lastmod":"2025-12-14","duration":"01:30:20","url":"/play/18961663.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTA1ZTgwOTFkN2I0NTkxNzQ1ZDUwYTc2NDE4ZWU3MzguanBn.cache","vod_id":19025119,"title":"SDNM203 Ham muốn dâng trào và bộ ngực dâm đãng Harada Chiaki, 38 tuổi, chương cuối ~ Trong cảnh quay cấm kỵ tại tổ ấm tình ái của cặp đôi, cô liên tục bị dương vật đâm vào cổ tử cung mà không dùng bao cao su. Vì quá khoái cảm, cô không thể không để mình bị xâm nhập mà không dùng bao cao su.","lastmod":"2025-03-24","duration":"02:16:19","url":"/play/19025119.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTcvNTE4NGY3Y2JjZWE4ZWE0OThmZTNjYjljOTU3ZjMyNTkuanBn.cache","vod_id":19052938,"title":"Ippondo đã nuốt tinh dịch tràn ra từ âm đạo của mình! (Ogawa Yuka, Ogawa Momoka 062924_001)","lastmod":"2025-09-16","duration":"01:01:44","url":"/play/19052938.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTJjNzIxOTRkNGE4N2U1OTUyOWM5ZTkzZDQ5NTU4YzMuanBn.cache","vod_id":18942523,"title":"[Phụ đề tiếng Trung] HBAD-493 Một nàng dâu trẻ bị quyến rũ bởi kỹ năng tình dục tuyệt vời của bố chồng mà chồng cô không hề hay biết.","lastmod":"2025-12-14","duration":"04:00:35","url":"/play/18942523.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjYvMDA1ZTUzMDQyY2JlYjU3NzAwZGVlZjgzMjNiYzg3N2MuanBn.cache","vod_id":19030886,"title":"Mồ hôi, nước bọt và dịch cơ thể tràn ngập. Thân thể họ quấn quýt vào nhau, khao khát tìm kiếm nhau. Cuộc ái ân mãnh liệt nhuốm màu Ichika-sensei FSDSS-554-C","lastmod":"2025-04-26","duration":"01:55:16","url":"/play/19030886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNjk2MGEwZjE5ZGE1ZjI3ODlhYTIzNWVjMzg4OTU3NDAuanBn.cache","vod_id":19158679,"title":"Ngay cả một người phụ nữ bình thường, ngực nở nang, làm việc văn phòng và không từ chối bất kỳ công việc nào trong kho, cũng sử dụng những kỹ thuật uốn éo hông cực kỳ khiêu dâm ở tư thế cưỡi ngựa để liên tục đòi hỏi cực khoái. Natural High","lastmod":"2026-05-18","duration":"03:46:14","url":"/play/19158679.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTQvNGExNGExOTgzMjc2MDI3NjM0NGFlYzk3MzVhODlmMjUuanBn.cache","vod_id":19028921,"title":"MMZ013_Chị người mẫu xe kiêu ngạo_Ye Rumeng, Trang web chính thức về ảnh khỏa thân gợi cảm","lastmod":"2025-04-13","duration":"34:47","url":"/play/19028921.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTRlZjJlOTdjNTUxNjgxMjRmNzQ0ZGQyZGNmOGZiN2MuanBn.cache","vod_id":19138369,"title":"Một nữ hướng dẫn viên du lịch xinh đẹp bị ép phải chịu trách nhiệm về thân thể mình đã tham gia vào một cuộc thác loạn bất tận với những hành khách trung niên tràn đầy năng lượng, một chuyến du lịch bằng xe buýt mà 18 người cùng xuất tinh. (SONE-882)","lastmod":"2026-01-14","duration":"01:58:46","url":"/play/19138369.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTcyOGE4YzU0ZDVlZDMyNWM1NDljYWFiZTAzNDkxZDguanBn.cache","vod_id":19146874,"title":"Sau khi để người vợ bị kìm nén về tình dục ở một mình với cấp dưới có dương vật khổng lồ của mình (20) PARATHD-4297","lastmod":"2026-03-06","duration":"59:58","url":"/play/19146874.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjMvYzkwNjQ1ZWMxYTM2MjdkNzU2YmI5MjExZWNhOGZlZWMuanBn.cache","vod_id":19053882,"title":"Những ham muốn thầm kín của một người vợ trẻ ngây thơ - Niềm khoái lạc và dục vọng không thể cưỡng lại #Hotaru Yamaguchi EDGS012","lastmod":"2025-09-22","duration":"01:15:31","url":"/play/19053882.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzc1YmFjNjdmMjgwYmNiZjg4MWVhOGQ1YjJkMjM4MGEuanBn.cache","vod_id":18985477,"title":"AUKG-584 Mối quan hệ đồng tính nữ của một người phụ nữ đã kết hôn ~Một người chồng biến thái cảm thấy hưng phấn khi thấy vợ mình bị người phụ nữ khác quyến rũ~","lastmod":"2025-12-14","duration":"01:59:11","url":"/play/18985477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmQ3ZjhiNjQ3NDUyNTIxY2VmYWQ4Mzg2NjhmZDkxNjUuanBn.cache","vod_id":18976429,"title":"HND-663 Lần đầu tiên của cô gái 18 tuổi. Tỉnh dậy sau cơn cực khoái - làm tình trong khách sạn đóng kín - Mari Kagami","lastmod":"2025-03-23","duration":"02:30:37","url":"/play/18976429.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTkvODgwZTM3N2ZjMTk1NDI0ZTIyMjI1Yjk4MjFiNmI5ZDEuanBn.cache","vod_id":19063380,"title":"Tôi là người giỏi nhất, bị ép liếm và xuất tinh bởi những thiên tài liếm núm vú và thủ dâm. JULIA, Riho Fujimori, Alice Oto và các nữ diễn viên khác. CJOB_163","lastmod":"2025-12-14","duration":"04:00:59","url":"/play/19063380.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWU0YTJmNWE5ODZjZGFlZGE2MzAxMjhmYzIzOTNlMzQuanBn.cache","vod_id":19154603,"title":"Lần đầu tiên quay phim với 5 nhân vật, bắt đầu bằng hình ảnh người vợ, minh họa bởi Yuki Asaki, Center Village.","lastmod":"2026-04-22","duration":"02:02:01","url":"/play/19154603.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDgvNzc3MzQ5NzU4ZmNiZDkwODcxYWQyZjJjYjgwNWRjYzIuanBn.cache","vod_id":19056686,"title":"Huấn luyện nô lệ cho vợ - Phần 4: Bà nội trợ xinh đẹp và đoản mệnh bị trói buộc. Diễn viên: Misaki Yui, Mogami Sayuki, Otoko Rui, v.v. GMAB005","lastmod":"2025-10-07","duration":"04:00:26","url":"/play/19056686.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmFkMjRlMWNmMTg1MTFmNDJmZTRhNTgxNjA1NjdjNGIuanBn.cache","vod_id":19145829,"title":"JohnnySins - Cảnh nóng điên cuồng trên ghế sofa! [JohnnySins]","lastmod":"2026-02-28","duration":"12:26","url":"/play/19145829.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjg2MjdkNDdkOTBkOWRlYjVhYjg5YmFmYzI3MWViMDIuanBn.cache","vod_id":19005417,"title":"MIAB-041-C Tôi vẫn yêu vợ tôi! Sau khi cuộc hôn nhân của tôi với chồng trải qua giai đoạn khó khăn, một thời gian sau, khi chúng tôi làm tình lần đầu tiên, chúng tôi nhận ra rằng cơ thể của mình hoàn toàn phù hợp.","lastmod":"2025-03-23","duration":"02:30:26","url":"/play/19005417.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2RmNjNkYzljODg2ZTRlNWYzZjIwODAwNDdiMTI2MGUuanBn.cache","vod_id":18988120,"title":"ONEZ-220 \"Hãy quay phim cảnh tôi và vợ tôi sinh con\" Một người vợ Đài Loan xinh đẹp xuất hiện trong phim AV \"Tôi muốn lưu giữ thân thể trần truồng xinh đẹp của mình\" Album ảnh khỏa thân kỷ niệm! Video sex riêng tư của một cặp đôi biến thái về cảnh sinh con, một cô gái Đài Loan lai xinh đẹp kết hôn với một fan AV và một ông chủ công ty ở Tokyo khoảng 40 tuổi!","lastmod":"2025-12-14","duration":"01:58:23","url":"/play/18988120.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDQ3YWJhZjQ2MTIxOTQ4ZWRmNDRjMjBlMjQyZWJhZjYuanBn.cache","vod_id":18984324,"title":"IPX-214 Bí mật đồng tính nữ gây sốc được hé lộ! 4 cảnh sex đồng tính nữ—Đỉnh cao khoái cảm mới—Lưỡi quấn quýt và cọ xát bộ phận sinh dục…Chỉ phụ nữ mới hiểu được","lastmod":"2025-12-14","duration":"01:58:38","url":"/play/18984324.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmM1NWRiZDljMTVmZGZmMGE2NDI2NzAyMjljMmY2ZDEuanBn.cache","vod_id":18963205,"title":"HUNTA-124 Anh trai mới cưới của tôi đã giới thiệu vợ mới cưới của tôi với gái mại dâm cũ mà tôi yêu thích nhất! Nhưng em trai tôi lại không hề hay biết chuyện này! Vậy nên, tôi là vợ của anh trai anh, một cựu gái mại dâm!","lastmod":"2025-03-22","duration":"04:02:40","url":"/play/18963205.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjJiNDNiNmJmOTdiMGVmOGQ2NmY3NmMwNTVmMjA5MTcuanBn.cache","vod_id":18961926,"title":"[Không kiểm duyệt] STARS-766 Bản phát hành xuất tinh gốc đầu tiên. Mồ hôi nhễ nhại, nhiều lần cực khoái, la hét khi quan hệ tình dục - Kamiki Rei","lastmod":"2025-03-22","duration":"02:20:57","url":"/play/18961926.html"}]},
videoTitle: 'Chuyến xe buýt đêm JUR320: Người vợ bị ép quan hệ tình dục chậm rãi và xuất tinh trái phép trên đường đến nơi làm việc của chồng.',
language: 'vi',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}