Vidéos recommandées

SWAG Ancre sexy aux longues jambes dans une tenue sexy jouant avec un vagin rose","lastmod":"2026-07-11","duration":"01:19:51","url":"/play/19153013.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjkvNDZiZTZlZjMxMjRlOTFiYzg0MjVlMTc4MjNjOGZjYjcuanBn.cache","vod_id":19114386,"title":"Modèle - PH-065, obsédée par le sexe : Ma partenaire d'un soir s'est avérée être ma sœur.","lastmod":"2025-07-29","duration":"33:08","url":"/play/19114386.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTZiOGVkZjY1Mzk0MGE4ZjAxNWI1ZTNhZjcyZTAzN2EuanBn.cache","vod_id":18964876,"title":"AOZ-325 Une vidéo d'une belle étudiante suivie et pénétrée de force dans trois orifices de son anus par un démon sur le chemin du retour à la maison.","lastmod":"2025-03-19","duration":"02:30:30","url":"/play/18964876.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmE5YjY5Yjg2YmMxODkzMmI5YTA3ZGMyNjU2NzljZjEuanBn.cache","vod_id":18997501,"title":"Je couche avec une grande et sexy escort girl de l'équipe universitaire - toutes sortes de positions, du sexe non-stop jusqu'à ce que je sois mort - je n'en peux plus !","lastmod":"2025-03-19","duration":"49:10","url":"/play/18997501.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjIyMTliNDUzMGUxNmQ4NTliNzkyMTUwNzU5NGE5OWUuanBn.cache","vod_id":18962410,"title":"KAMEF-056 Prise de vue personnelle, Prise de vue spéciale pour étudiants, Objectif Mai-chan Machida, FICHIER BLACK KAMEKO.5","lastmod":"2025-03-19","duration":"01:56:19","url":"/play/18962410.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTAvZjlhYTllNGNjMmVmNTljOWUwOGNkZTlhNWNhNjNlNGIuanBn.cache","vod_id":19103750,"title":"BDSR-533 Envie de vivre longtemps ? Soyez sexy !! « Regardez nos culottes coquines, envie de nous rejoindre ? » ~ Culottes rouges","lastmod":"2025-05-10","duration":"04:00:25","url":"/play/19103750.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzgzYjI0N2RmYzA5YzcyZjQyMjZhYzE5MWRkYmYzOTkuanBn.cache","vod_id":18960214,"title":"Caribbeancom 101723-001 Encyclopédie des actrices sexy Hinata Ann","lastmod":"2025-03-19","duration":"59:35","url":"/play/18960214.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWEyZWE1NzUzNTAyNjBhNmU0MTM5NmY5NGI2Mjk2YWIuanBn.cache","vod_id":18950825,"title":"Une étudiante pékinoise, en apparence innocente, a commencé à travailler comme escort girl la nuit pour alléger le fardeau financier de ses parents.","lastmod":"2025-03-19","duration":"36:10","url":"/play/18950825.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWU3YTBmMWY1MjA5NzFmY2E0NmE5ODRmZjMyYzc2YmUuanBn.cache","vod_id":18952720,"title":"JUFE-500 Son corps voluptueux et parfumé est plein de désir, toujours ruisselant de sueur ! La langue séductrice d'une veuve sexy qui adore les bites.","lastmod":"2025-03-19","duration":"02:28:36","url":"/play/18952720.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODY2ZTBjNzQ1YTQ2YzkxODE0ODBkZDNjMmY5NWUxMjEuanBn.cache","vod_id":18930777,"title":"Série de rencontres de Hairy Guy : Étudiant diplômé 7","lastmod":"2025-03-19","duration":"03:19","url":"/play/18930777.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTMwNDgwN2JlNjk1MzI2NzkxZGFlMDhhN2RiNTNmYWYuanBn.cache","vod_id":19030220,"title":"BBAN-485 Gros plan et super gros plan ! Deux femmes aux poitrines généreuses (bonnets I et H) se tiennent très près l'une de l'autre ; leurs silhouettes sont incroyablement sexy et puissantes.","lastmod":"2025-03-19","duration":"02:00:12","url":"/play/19030220.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGU2ZWM0ZGEyNDRiNDI0YzY1NTA3ZjM5ODUzYzNhNzYuanBn.cache","vod_id":18966649,"title":"HUNTB-575 Est-elle si audacieuse parce qu'elle porte un masque ? Quand j'ai appelé deux aides à domicile, une femme plantureuse et sexy portant un masque est apparue !","lastmod":"2025-03-19","duration":"02:19:48","url":"/play/18966649.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2E1NzIxY2MyMGFhNzM0OTQ1NGI1OGE3NGRjZjc3ZTguanBn.cache","vod_id":18966193,"title":"PKPD-272 Éjaculation facile, Momo (20 ans), une étudiante avec des jambes de mannequin.","lastmod":"2025-03-19","duration":"02:20:08","url":"/play/18966193.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9ndXp3aWF5ei5jb20vMjAyNjAyMjUvaFdGR1BnT2gvMS5qcGc/dD0xNzcyMDczNjA3.cache","vod_id":19140136,"title":"Projet IENFH-32901 d'amélioration de la sensibilité des mamelons ! Une étudiante amateur relève le défi ! Les seins de l'actrice de films pour adultes restent fermes même après l'orgasme.","lastmod":"2026-02-26","duration":"51:17","url":"/play/19140136.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGUxZDAzOGU4YWE5ZDhjOTI2MjhkM2UzNjIzZmU5YjMuanBn.cache","vod_id":18944546,"title":"Je couchais avec une fille qui avait l'air d'une étudiante, avec une forte poitrine (bonnet D). J'avais accumulé beaucoup de prêts en ligne et je me prostituais dans des suites d'hôtels de luxe pour rembourser mes dettes. Je lui faisais une fellation tout en parlant au téléphone avec mon meilleur ami.","lastmod":"2025-03-19","duration":"34:07","url":"/play/18944546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDhkNjViNGFmN2Y3NDY4ZmMyYmFkYTU3YjBjZWRjY2IuanBn.cache","vod_id":19012639,"title":"Royal Chinese - Espionnage d'une enseignante aux longues jambes se changeant, mais punition obscène consistant à faire pénétrer une élève vierge sans préservatif - Poupée Weng Yucheng.","lastmod":"2025-03-19","duration":"30:49","url":"/play/19012639.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTA0NWQzNTVlODk5ZjY1MWQ5YzE5NTM0MWFkNTM5ZTUuanBn.cache","vod_id":18953905,"title":"La fleur femelle la plus importante (troisième dans le rang des concubines impériales) a eu des relations sexuelles avec ses sœurs et un jeune homme dans une voiture.","lastmod":"2025-03-19","duration":"01:29:38","url":"/play/18953905.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDMvNDU0Yjk0M2Q3ZmQ1NGU1YWUzMjljMDUzYzYyYjI1OWMuanBn.cache","vod_id":19110782,"title":"Commémoration du 20e anniversaire de SONE-562 S1 : La meilleure équipe de deux de l’histoire de l’audiovisuel ; une étudiante se classe première au classement de la reconnaissance faciale.","lastmod":"2025-07-03","duration":"02:32:22","url":"/play/19110782.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2NlZGVlMjBmZTRjZjNkZGNhNTc1Y2U4ZTgyNGY2ZDEuanBn.cache","vod_id":18946696,"title":"Vidéo de danse sexy d'une présentatrice coréenne 2","lastmod":"2025-03-19","duration":"00:00:48","url":"/play/18946696.html"}]}, videoTitle: 'Frapper de jolies écolières dans un appartement loué', language: 'fr', 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('Lien copié !'); }).catch(() => { // 降级到旧方法 document.execCommand('copy'); alert('Lien copié !'); }); } else { // 降级到旧方法 document.execCommand('copy'); alert('Lien copié !'); } } }, // 切换布局 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=/`; } }; } </script> <div class="container mt-4"> <h5 class="fw-bold mb-2" id="translate">友情链接</h5> </div> </div> <!-- End Main Content --> <!-- Footer --> <footer class="bg-dark text-light py-4 mt-5"> <div class="container"> <div class="row"> <div class="col-md-6"> <h5 class="navbar-brand"> <span class="text-uppercase fw-bold text-primary">经典</span><span class="text-danger">AV</span> </h5> <p class="text-white">Meilleur site de vidéos pour adultes japonaises, JAV gratuit en permanence, ultra-rapide, sans délai, plus de 100 000 vidéos, mises à jour quotidiennement, aucune publicité pendant le visionnage.</p> </div> </div> <hr class="bg-light"> <div class="text-center"> <p class="mb-0 text-white">© 火山小黄人. All rights reserved.</p> </div> </div> </footer> <!-- Bootstrap JS --> <script src="/js/bootstrap.5.3.0.min.js"></script> <script src="/js/main.js?t=2"></script> <script>var s=document.createElement('script');s.src='/js/lianmeng.js?'+new Date().getTime();document.head.appendChild(s);</script> <script type="text/javascript" src='/js/tongji.js?t=1' async></script> </body> </html>