SDNM-538 Bà nội trợ cô đơn không cưỡng lại được cám dỗ sau đại dịch! Một phụ nữ trưởng thành ngực khủng đến từ Kanagawa ra mắt trong ngành phim người lớn để lấp đầy khoảng trống trong cuộc sống, bị cưỡng bức không ngừng và âm đạo ngập tràn tinh dịch.
Người vợ đức hạnh trở thành vật tế thần và nô lệ tình dục. Oishi Saki bị cưỡng hiếp dã man và bị xuất tinh vào bên trong.","lastmod":"2026-07-11","duration":"","url":"/play/19245902.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDZhMGI1ZWFhNjAyNjIxYTQ3OWE0YWU4OTMxNzgxN2IuanBn.cache","vod_id":19233804,"title":"Cảnh NTR gây sốc! Cô bạn gái ngực khủng bị chính cha ruột cưỡng hiếp dã man; khu vườn riêng của cô trở thành món đồ chơi tình dục dâm dục.","lastmod":"2026-05-09","duration":"2:16:35","url":"/play/19233804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjJjOTRhM2E4ODkyODRkN2Y5ZTZmM2JlNjcyYjRmNDUuanBn.cache","vod_id":19225274,"title":"MIDA-495 Cô hầu gái ngực khủng Shiraishi Nami bị chủ nhân cưỡng hiếp đến cực khoái và không kiểm soát được bàng quang, âm đạo cô co giật và cầu xin sự thương xót khi hắn xuất tinh vào bên trong cô.","lastmod":"2026-03-30","duration":"2:04:09","url":"/play/19225274.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvNTMyODVlZGQ3MjNjY2MwNDY5ZjI3MGVlMWVhYjM0YzQuanBn.cache","vod_id":19243980,"title":"Ham muốn riêng tư 1: Một người phụ nữ đã kết hôn đầy dục vọng có một cuộc tình vụng trộm vào đêm khuya, với bộ ngực đồ sộ bị cưỡng hiếp dã man cho đến khi cô không thể kiểm soát được bàng quang.","lastmod":"2026-07-05","duration":"0:29:45","url":"/play/19243980.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2NiZjdhNTUzZTgwZWZiMDM1NWU1MGY5OWRmZWU0Y2QuanBn.cache","vod_id":19084718,"title":"[Phụ đề tiếng Trung] JUQ-163 Bị quyến rũ bởi những lời nói ngọt ngào, anh ta cặp kè với một người phụ nữ đã có chồng cho đến khi phải học lại đại học… Tsumugi Kanara","lastmod":"2025-03-29","duration":"02:03:45","url":"/play/19084718.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzhhN2E5ZjE5MTVjODA1NzRlZDA2MDFiYzI5NjFiODAuanBn.cache","vod_id":19212334,"title":"Vớ đen và giày cao gót, một người đẹp nóng bỏng với vòng ba căng tròn! Đôi chân dài, bờ vai gợi cảm, không dùng bao cao su, quan hệ tình dục hoang dã, oral sex và xuất tinh cùng một lúc.","lastmod":"2025-12-31","duration":"1:01:25","url":"/play/19212334.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDhiNGI4NjAxMjI5NDhjMjE1MGQ4M2U3ODM3ODJjNTkuanBn.cache","vod_id":19065866,"title":"DVDES-637 Nếu không bỏ học vì mang thai, cô ấy vẫn sẽ là học sinh trung học! Người đẹp 18 tuổi đang cho con bú ra mắt phim người lớn!","lastmod":"2025-03-28","duration":"02:03:36","url":"/play/19065866.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2ZiNDAxMGJmN2EzYTdhMGVlZDIzMjFkYTE0MTgyMjguanBn.cache","vod_id":19231468,"title":"SARA LUVV đã bị James Dean cưỡng hiếp một cách dã man! Âm đạo của cô ta đầy tinh dịch, và con điếm đó đã nuốt trọn hết chất dịch màu trắng đó!","lastmod":"2026-04-29","duration":"0:11:04","url":"/play/19231468.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGYzYTU0Mjg4YjNhMTQ5MzEwMDYyZjQ5NzExMzZhMGQuanBn.cache","vod_id":19114797,"title":"Cô gái xinh đẹp, trầm lặng, hơi dâm đãng đang có cuộc ái ân nồng cháy với bạn tình.","lastmod":"2025-03-29","duration":"","url":"/play/19114797.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2VlNTIwZjBlMmNmMTU3ODEzMzE1NTYxY2EwZWUxMGYuanBn.cache","vod_id":19217758,"title":"Cơn cuồng loạn cấm kỵ! Đêm sinh nhật của mẹ kế trôi qua trong sự xâm hại dã man, vùng kín nhạy cảm của bà bị mất đi và bà rơi vào cạm bẫy của sự trụy lạc giữa cha mẹ và con cái.","lastmod":"2026-02-15","duration":"0:09:56","url":"/play/19217758.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvZTU2NzlkZTgxZjQ3YmMzMTI0ZmU5NGE2ZTJmYzYxODAuanBn.cache","vod_id":19242309,"title":"Cô gái trẻ ngực lớn, thân hình đồng hồ cát, bị cưỡng hiếp dữ dội đến mức âm đạo xuất tinh.","lastmod":"2026-06-25","duration":"0:24:10","url":"/play/19242309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYWE0ZjI1ZGMwZjc0OTlkM2FkMzU3YzNhMmQzYmNhMDMuanBn.cache","vod_id":19236567,"title":"Một người mẫu bị bắt quả tang quay phim lén lút cảnh quan hệ tình dục và bị xuất tinh vào bên trong cơ thể! Người mẫu bị phát hiện đang quan hệ tình dục và bị xuất tinh vào trong người.","lastmod":"2026-05-21","duration":"0:51:26","url":"/play/19236567.html"}]},
videoTitle: 'SDNM-538 Bà nội trợ cô đơn không cưỡng lại được cám dỗ sau đại dịch! Một phụ nữ trưởng thành ngực khủng đến từ Kanagawa ra mắt trong ngành phim người lớn để lấp đầy khoảng trống trong cuộc sống, bị cưỡng bức không ngừng và âm đạo ngập tràn tinh dịch.',
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=/`;
}
};
}