- 原生 Next.js App Router + 严格 TypeScript 实现花魁短剧 PC/H5 页面,按 src/features/{catalog,content,playback} 组织,保留完整 SEO(metadata、JSON-LD、canonical、robots、llms、sitemap、IndexNow)。
- 主域名通过 SITE_URL=https://huakuidj.com 强制覆盖后端 foreverUrlAddr(config/*.env、src/server/config.ts、src/server/seo/shared.ts、src/server/services/shared.ts),支持邮箱改为 support@huakuidj.com。
- 移除登录与账户体系:删除 /account 全部页面、登录/注册/充值弹窗、收藏点赞、评论、金币解锁及对应 BFF 接口;旧账户地址 GET/HEAD 统一 301 到首页(src/lib/routes.ts REMOVED_ACCOUNT_PATHS),保留游客会话、反馈、图片上传、观看上报与搜索联想。
- 播放页:评论位改为同类推荐 + 热播榜单,锁定集改为 App 观看遮罩与底部弹层,新增简介标签、分集图例与独立视觉皮肤(src/features/playback、src/styles/pages/playback.css)。
- 卡片:短剧/视频卡状态与时长移至信息行胶囊标签,封面角标移至左上角(src/components/catalog/Cards.tsx、src/styles/foundations/base.css)。
- 同步更新单元测试、浏览器冒烟脚本、路由清单与 README。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1291 lines
63 KiB
HTML
1291 lines
63 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh-CN">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
|
|
<title>花魁 & "标题" <test></title>
|
|
|
|
<meta name="description" content="短剧'说明 & 安全">
|
|
|
|
<meta name="robots" content="index, follow">
|
|
<meta name="googlebot" content="index, follow">
|
|
|
|
<meta name="google-site-verification" content="VEhl0na6ZwYZgkdcdz8BcCR4LpYGFm97zbp62YqJHX4">
|
|
<meta name="yandex-verification" content="56acf08532be3060">
|
|
<meta name="yandex-verification" content="acaf652efa6cd920">
|
|
<meta name="msvalidate.01" content="57A5999E9B5167EE9039265EBCA2AE3A">
|
|
<link rel="canonical" href="https://drama.example/tags/">
|
|
|
|
|
|
<meta property="og:locale" content="zh_CN">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:site_name" content="花魁">
|
|
<meta property="og:title" content="花魁 & "标题" <test>">
|
|
<meta property="og:description" content="短剧'说明 & 安全">
|
|
<meta property="og:url" content="https://drama.example/tags/">
|
|
|
|
<meta name="twitter:card" content="summary_large_image">
|
|
<meta name="twitter:title" content="花魁 & "标题" <test>">
|
|
<meta name="twitter:description" content="短剧'说明 & 安全">
|
|
|
|
<link rel="icon" href="/static/favicon.svg?v=huakui-20261010" type="image/svg+xml" sizes="any">
|
|
<link rel="icon" href="/static/favicon.png?v=huakui-20261010" type="image/png">
|
|
<link rel="apple-touch-icon" href="/static/favicon.png?v=huakui-20261010">
|
|
|
|
<script src="/static/js/common/channel.js?v=huakui-20261010"></script>
|
|
|
|
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Z582WY8LN9"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-Z582WY8LN9');
|
|
</script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
(function(m,e,t,r,i,k,a){
|
|
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
|
m[i].l=1*new Date();
|
|
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
|
|
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
|
|
})(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=112951899', 'ym');
|
|
|
|
ym(112951899, 'init', {ssr:true, webvisor:true, clickmap:true, ecommerce:"dataLayer", referrer: document.referrer, url: location.href, accurateTrackBounce:true, trackLinks:true});
|
|
</script>
|
|
|
|
|
|
<script>
|
|
window.__TRACKER_BOOT__ = {
|
|
appId: "app\u0027\u0022\u003c\/script\u003e",
|
|
encryptedConfig: "sdk-config\u003c/script\u003e",
|
|
appVersion: "1.0.0",
|
|
pageKey: "tags",
|
|
pageName: "标签",
|
|
userType: "normal"
|
|
};
|
|
</script>
|
|
<script defer src="/static/common/web-sdk-v1.2.0.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/tracker.js?v=huakui-20261010"></script>
|
|
|
|
|
|
|
|
<meta name="renderer" content="webkit">
|
|
<meta name="force-rendering" content="webkit">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<meta name="x5-orientation" content="portrait">
|
|
<meta name="x5-page-mode" content="app">
|
|
<meta name="browsermode" content="application">
|
|
<meta name="imagemode" content="force">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<script src="/static/js/common/compat.js?v=huakui-20261010"></script>
|
|
<link rel="stylesheet" href="/static/css/base.css?v=huakui-20261010">
|
|
<link rel="stylesheet" href="/static/css/recharge-modal.css?v=huakui-20261010">
|
|
<link rel="stylesheet" href="/static/common/DPlayer.min.css?v=huakui-20261010">
|
|
<link rel="stylesheet" href="/static/css/play.css?v=huakui-20261010">
|
|
<script defer src="/static/common/hls.min.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/common/DPlayer.min.js?v=huakui-20261010"></script>
|
|
</head>
|
|
<body class="page-play">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/header.css?v=huakui-20261010">
|
|
<header class="site-header">
|
|
<div class="site-header__left">
|
|
<button class="site-header__icon-btn only-h5" type="button" aria-label="菜单" data-drawer-open>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu.svg?v=huakui-20261010" alt="菜单">
|
|
</button>
|
|
<a class="brand" href="/" data-navigation-key="home" data-navigation-name="首页">
|
|
<picture>
|
|
<source media="(max-width: 768px)" srcset="/static/brand/mobile.svg?v=huakui-20261010">
|
|
<img class="brand__logo" src="/static/brand/header.svg?v=huakui-20261010" width="104" height="36" alt="花魁短剧">
|
|
</picture>
|
|
</a>
|
|
<nav class="nav only-pc" aria-label="主导航">
|
|
|
|
|
|
|
|
<a class="nav__item" href="/" data-navigation-key="/home" data-navigation-name="首页">首页</a>
|
|
|
|
|
|
|
|
<div class="nav__item-wrap">
|
|
<a class="nav__item is-active" href="/list/" aria-haspopup="true" data-navigation-key="/playlet" data-navigation-name="短剧">短剧</a>
|
|
<div class="nav__mega" role="menu" aria-label="短剧快捷筛选">
|
|
<div class="nav__mega-col nav__mega-col--themes">
|
|
<p class="nav__mega-label">题材</p>
|
|
<div class="nav__mega-chips">
|
|
|
|
|
|
<a class="nav__mega-chip" href="/list/%E9%83%BD%E5%B8%82/" role="menuitem" data-navigation-key="mega_theme_1" data-navigation-name="题材:都市">都市</a>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="nav__mega-col nav__mega-col--status">
|
|
<p class="nav__mega-label">状态</p>
|
|
<div class="nav__mega-chips">
|
|
|
|
<a class="nav__mega-chip is-active" href="/list/" role="menuitem" data-navigation-key="mega_status_all" data-navigation-name="状态:全部">全部</a>
|
|
<a class="nav__mega-chip" href="/list/all/1/1/" role="menuitem" data-navigation-key="mega_status_serializing" data-navigation-name="状态:连载中">连载中</a>
|
|
<a class="nav__mega-chip" href="/list/all/2/1/" role="menuitem" data-navigation-key="mega_status_completed" data-navigation-name="状态:已完结">已完结</a>
|
|
</div>
|
|
</div>
|
|
<div class="nav__mega-col nav__mega-col--links">
|
|
<p class="nav__mega-label">快捷入口</p>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<a class="nav__item" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">下载APP</a>
|
|
|
|
|
|
</nav>
|
|
</div>
|
|
<div class="site-header__right">
|
|
<form class="search only-pc" action="/search/" method="get" role="search" data-path-search data-header-search>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/search.svg?v=huakui-20261010" alt="搜索">
|
|
<input class="search__input" type="search" placeholder="搜索剧名 / 演员 / 标签" autocomplete="off" data-header-search-input aria-autocomplete="list" aria-expanded="false" aria-controls="header-search-dropdown">
|
|
<button class="search__clear" type="button" aria-label="清除搜索词" data-header-search-clear hidden>
|
|
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
|
|
</button>
|
|
<div class="search-dropdown" id="header-search-dropdown" data-header-search-dropdown hidden>
|
|
<div class="search-dropdown__idle" data-header-search-idle>
|
|
<section class="search-dropdown__history" aria-label="搜索历史" data-header-search-history hidden>
|
|
<div class="search-dropdown__head">
|
|
<h2 class="search-dropdown__label">搜索历史</h2>
|
|
<button class="search-dropdown__clear" type="button" aria-label="清除搜索历史" data-header-history-clear>
|
|
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="清除">
|
|
</button>
|
|
</div>
|
|
<div class="search-dropdown__chips" data-header-history-chips></div>
|
|
</section>
|
|
|
|
</div>
|
|
<div class="search-dropdown__suggest" data-header-search-suggest hidden aria-label="搜索联想"></div>
|
|
</div>
|
|
</form>
|
|
<a class="site-header__icon-btn only-h5" href="/search-mobile/" aria-label="搜索" data-navigation-key="header_search" data-navigation-name="搜索">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/search_h5.svg?v=huakui-20261010" alt="搜索">
|
|
</a>
|
|
<a class="btn btn--ghost site-header__download" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="header_download" data-navigation-name="下载 APP">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
|
|
<span>下载 App</span>
|
|
</a>
|
|
|
|
<button class="btn btn--primary site-header__login" type="button" data-login-open>登录</button>
|
|
|
|
</div>
|
|
</header>
|
|
<div class="drawer" data-drawer>
|
|
<div class="drawer__mask" data-drawer-close></div>
|
|
<aside class="drawer__panel" id="site-drawer" role="dialog" aria-modal="true" aria-label="侧边导航">
|
|
<div class="drawer__head">
|
|
<div class="drawer__brand-row">
|
|
<a class="brand" href="/" data-navigation-key="drawer_home" data-navigation-name="首页">
|
|
<img class="brand__logo" src="/static/brand/mobile.svg?v=huakui-20261010" width="88" height="28" alt="花魁短剧">
|
|
</a>
|
|
<button class="drawer__close" type="button" aria-label="关闭" data-drawer-close>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
|
|
</button>
|
|
</div>
|
|
|
|
<button class="drawer__user drawer__user--login" type="button" data-login-open>
|
|
<img decoding="async" loading="lazy" class="drawer__avatar" src="/static/brand/placeholder.svg?v=huakui-20261010" alt="默认用户头像">
|
|
<div class="drawer__user-info">
|
|
<strong>登录 / 注册</strong>
|
|
<span class="drawer__coin">登录后同步收藏与进度</span>
|
|
</div>
|
|
<img decoding="async" loading="lazy" class="icon icon--sm drawer__user-arrow" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<hr class="drawer__rule">
|
|
|
|
<nav class="drawer__nav" aria-label="页面导航">
|
|
|
|
|
|
<a class="drawer__nav-item" href="/" data-navigation-key="/home" data-navigation-name="首页">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sy.svg?v=huakui-20261010" alt="首页入口">
|
|
首页
|
|
</a>
|
|
|
|
|
|
<a class="drawer__nav-item is-active" href="/list/" data-navigation-key="/playlet" data-navigation-name="短剧">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_dj.svg?v=huakui-20261010" alt="短剧入口">
|
|
短剧
|
|
</a>
|
|
|
|
|
|
<a class="drawer__nav-item" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sy.svg?v=huakui-20261010" alt="下载APP入口">
|
|
下载APP
|
|
</a>
|
|
|
|
</nav>
|
|
|
|
<hr class="drawer__rule">
|
|
|
|
<div class="drawer__tags">
|
|
<p class="drawer__tags-label">题材</p>
|
|
<div class="drawer__tag-list">
|
|
|
|
<a class="drawer__tag" href="/list/%E9%83%BD%E5%B8%82/" data-navigation-key="drawer_theme_1" data-navigation-name="题材:都市">都市</a>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="drawer__links">
|
|
|
|
<a class="drawer__link" href="/favorites/" data-navigation-key="drawer_favorites" data-navigation-name="我的收藏">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_sc.svg?v=huakui-20261010" alt="我的收藏">
|
|
我的收藏
|
|
</a>
|
|
<a class="drawer__link" href="/history/" data-navigation-key="drawer_history" data-navigation-name="观看历史">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/menu_gkls.svg?v=huakui-20261010" alt="观看历史">
|
|
观看历史
|
|
</a>
|
|
</div>
|
|
|
|
<div class="drawer__foot">
|
|
<a class="btn btn--ghost drawer__download" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="drawer_download" data-navigation-name="下载 APP">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
|
|
下载 App
|
|
</a>
|
|
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
|
|
<script defer src="/static/js/common/cookie.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/common/request.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/common/auth.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/common/imgDecypt.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/header.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/pages/loginPop.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/pages/registerPop.js?v=huakui-20261010"></script>
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/eighteen.css?v=huakui-20261010">
|
|
<script>
|
|
(function () {
|
|
try {
|
|
if (localStorage.getItem("hg_age_ok") === "1") {
|
|
document.documentElement.classList.add("eighteen-ok");
|
|
}
|
|
} catch (e) {}
|
|
})();
|
|
</script>
|
|
<div class="eighteen" data-eighteen role="dialog" aria-modal="true" aria-labelledby="eighteen-title">
|
|
<div class="eighteen__mask" aria-hidden="true"></div>
|
|
<div class="eighteen__dialog">
|
|
<div class="eighteen__badge" aria-hidden="true">18+</div>
|
|
<h2 class="eighteen__title" id="eighteen-title">年龄确认</h2>
|
|
<p class="eighteen__desc">本网站部分内容仅适合成年人观看。点击继续即表示您确认您已年满 18 岁,或在您访问本网站时所在的司法管辖区已是成年人。</p>
|
|
<button class="btn btn--primary eighteen__enter" type="button" data-eighteen-enter>
|
|
我已年满 18 岁,进入
|
|
</button>
|
|
<button class="eighteen__exit" type="button" data-eighteen-exit>
|
|
我未满 18 岁,退出
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<script src="/static/js/eighteen.js?v=huakui-20261010" defer></script>
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/loginPop.css?v=huakui-20261010">
|
|
<div
|
|
class="login-pop"
|
|
data-login-pop
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-labelledby="login-pop-title"
|
|
>
|
|
<div class="login-pop__mask" data-login-close aria-hidden="true"></div>
|
|
<div class="login-pop__panel">
|
|
<button class="login-pop__close" type="button" data-login-close aria-label="关闭">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
|
|
</button>
|
|
|
|
<div class="login-pop__intro">
|
|
<h2 class="login-pop__title" id="login-pop-title" data-login-title>登录花魁短剧</h2>
|
|
<p class="login-pop__desc" data-login-desc>登录后可收藏作品、解锁付费剧集并查看观看历史</p>
|
|
</div>
|
|
|
|
<form
|
|
class="login-pop__form"
|
|
action="/api/auth/login"
|
|
method="post"
|
|
data-login-form
|
|
novalidate
|
|
>
|
|
<label class="login-pop__field" data-field="account">
|
|
<span class="login-pop__label">账号</span>
|
|
<span class="login-pop__control">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/user.svg?v=huakui-20261010" alt="用户" aria-hidden="true">
|
|
<input
|
|
class="login-pop__input"
|
|
type="text"
|
|
name="account"
|
|
autocomplete="username"
|
|
placeholder="请输入账号"
|
|
maxlength="16"
|
|
required
|
|
>
|
|
</span>
|
|
<span class="login-pop__error" data-field-error="account" hidden>
|
|
<img decoding="async" loading="lazy" class="login-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
</label>
|
|
|
|
<label class="login-pop__field" data-field="password">
|
|
<span class="login-pop__label">密码</span>
|
|
<span class="login-pop__control">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
|
|
<input
|
|
class="login-pop__input"
|
|
type="password"
|
|
name="password"
|
|
autocomplete="current-password"
|
|
placeholder="请输入登录密码"
|
|
maxlength="16"
|
|
data-login-password
|
|
required
|
|
>
|
|
<button class="login-pop__toggle" type="button" data-login-toggle aria-label="显示密码">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-login-toggle-icon>
|
|
</button>
|
|
</span>
|
|
<span class="login-pop__error" data-field-error="password" hidden>
|
|
<img decoding="async" loading="lazy" class="login-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
</label>
|
|
|
|
<div class="login-pop__meta">
|
|
<label class="login-pop__remember">
|
|
<input class="login-pop__checkbox" type="checkbox" name="remember" checked>
|
|
<span class="login-pop__check" aria-hidden="true"></span>
|
|
<span>记住登录状态</span>
|
|
</label>
|
|
</div>
|
|
|
|
<button class="btn btn--primary login-pop__submit" type="submit" data-login-submit>登录</button>
|
|
</form>
|
|
|
|
<p class="login-pop__switch"><span>还没有账号?</span><a href="/register/" data-register-open>立即注册</a></p>
|
|
|
|
<div class="login-pop__rule" aria-hidden="true"></div>
|
|
|
|
<p class="login-pop__legal">
|
|
登录即表示你已年满 18 岁并同意
|
|
<a href="/terms/">《用户条款》</a>
|
|
与
|
|
<a href="/privacy/">《隐私政策》</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/registerPop.css?v=huakui-20261010">
|
|
<div
|
|
class="register-pop"
|
|
data-register-pop
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-labelledby="register-pop-title"
|
|
>
|
|
<div class="register-pop__mask" data-register-close aria-hidden="true"></div>
|
|
<div class="register-pop__panel">
|
|
<button class="register-pop__close" type="button" data-register-close aria-label="关闭">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
|
|
</button>
|
|
|
|
<div class="register-pop__intro">
|
|
<h2 class="register-pop__title" id="register-pop-title">创建账号</h2>
|
|
<p class="register-pop__desc">注册后即可解锁付费剧集并收藏作品</p>
|
|
</div>
|
|
|
|
<form
|
|
class="register-pop__form"
|
|
action="/api/auth/register"
|
|
method="post"
|
|
data-register-form
|
|
novalidate
|
|
>
|
|
<label class="register-pop__field" data-field="account">
|
|
<span class="register-pop__label">账号</span>
|
|
<span class="register-pop__control">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/user.svg?v=huakui-20261010" alt="用户" aria-hidden="true">
|
|
<input
|
|
class="register-pop__input"
|
|
type="text"
|
|
name="account"
|
|
autocomplete="username"
|
|
placeholder="6 到 20 位字母或数字"
|
|
minlength="6"
|
|
maxlength="20"
|
|
pattern="[A-Za-z0-9]{6,20}"
|
|
required
|
|
>
|
|
</span>
|
|
<span class="register-pop__error" data-field-error="account" hidden>
|
|
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
</label>
|
|
|
|
<label class="register-pop__field" data-field="password">
|
|
<span class="register-pop__label">密码</span>
|
|
<span class="register-pop__control">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
|
|
<input
|
|
class="register-pop__input"
|
|
type="password"
|
|
name="password"
|
|
autocomplete="new-password"
|
|
placeholder="8 位以上,含字母与数字"
|
|
minlength="8"
|
|
maxlength="64"
|
|
data-register-password
|
|
required
|
|
>
|
|
<button class="register-pop__toggle" type="button" data-register-toggle="password" aria-label="显示密码">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-register-toggle-icon="password">
|
|
</button>
|
|
</span>
|
|
<span class="register-pop__error" data-field-error="password" hidden>
|
|
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
</label>
|
|
|
|
<label class="register-pop__field" data-field="passwordConfirm">
|
|
<span class="register-pop__label">确认密码</span>
|
|
<span class="register-pop__control">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/lock-dim.svg?v=huakui-20261010" alt="密码" aria-hidden="true">
|
|
<input
|
|
class="register-pop__input"
|
|
type="password"
|
|
name="passwordConfirm"
|
|
autocomplete="new-password"
|
|
placeholder="再次输入密码"
|
|
minlength="8"
|
|
maxlength="64"
|
|
data-register-password-confirm
|
|
required
|
|
>
|
|
<button class="register-pop__toggle" type="button" data-register-toggle="confirm" aria-label="显示密码">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/eye.svg?v=huakui-20261010" alt="显示或隐藏密码" data-register-toggle-icon="confirm">
|
|
</button>
|
|
</span>
|
|
<span class="register-pop__error" data-field-error="passwordConfirm" hidden>
|
|
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
</label>
|
|
|
|
<label class="register-pop__field" data-field="agentInviteCode">
|
|
<span class="register-pop__label">邀请码(选填)</span>
|
|
<span class="register-pop__control">
|
|
<img class="icon" src="/static/images/auth/award.svg?v=huakui-20261010" alt="" aria-hidden="true" width="18" height="18">
|
|
<input class="register-pop__input" type="text" name="agentInviteCode" autocomplete="off" placeholder="如有邀请码,请在此填写">
|
|
</span>
|
|
<span class="register-pop__error" data-field-error="agentInviteCode" hidden><img class="register-pop__error-icon" src="/static/images/error-tip.svg?v=huakui-20261010" alt="" aria-hidden="true"><span data-field-error-text></span></span>
|
|
</label>
|
|
|
|
<label class="register-pop__agree" data-field="agree">
|
|
<input class="register-pop__checkbox" type="checkbox" name="agree" required>
|
|
<span class="register-pop__check" aria-hidden="true"></span>
|
|
<span>
|
|
我已年满 18 岁,并同意
|
|
<a href="/terms/">《用户条款》</a>
|
|
与
|
|
<a href="/privacy/">《隐私政策》</a>
|
|
</span>
|
|
</label>
|
|
<span class="register-pop__error" data-field-error="agree" hidden>
|
|
<img decoding="async" loading="lazy" class="register-pop__error-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" aria-hidden="true">
|
|
<span data-field-error-text></span>
|
|
</span>
|
|
|
|
<button class="btn btn--primary register-pop__submit" type="submit" data-register-submit>注册</button>
|
|
</form>
|
|
|
|
<p class="register-pop__switch">
|
|
<span>已有账号?</span>
|
|
<a href="/login/" data-login-open>立即登录</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/downloadPop.css?v=huakui-20261010">
|
|
<div
|
|
class="download-pop"
|
|
data-download-pop
|
|
data-app-addr="https://app.example/download"
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-labelledby="download-pop-title"
|
|
>
|
|
<div class="download-pop__mask" data-download-close aria-hidden="true"></div>
|
|
<div class="download-pop__panel">
|
|
<button class="download-pop__close" type="button" data-download-close aria-label="关闭">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="">
|
|
</button>
|
|
<div class="download-pop__copy">
|
|
<h2 class="download-pop__title" id="download-pop-title">下载花魁短剧 App</h2>
|
|
<p class="download-pop__desc">点击后前往下载页,手机打开会自动识别设备并推荐安装方式</p>
|
|
</div>
|
|
<a class="download-pop__download" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="lazy" class="download-pop__download-icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="">
|
|
点击下载
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<script defer src="/static/js/pages/downloadPop.js?v=huakui-20261010"></script>
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/installGuide.css?v=huakui-20261010">
|
|
<div class="install-guide" data-install-guide hidden>
|
|
<div class="install-guide__mask" data-install-close data-download-close aria-hidden="true"></div>
|
|
<section class="install-guide__sheet" role="dialog" aria-modal="true" aria-labelledby="install-guide-title" aria-describedby="install-guide-description" tabindex="-1">
|
|
<div class="install-guide__handle" aria-hidden="true"><span></span></div>
|
|
<header class="install-guide__head">
|
|
<div class="install-guide__heading">
|
|
<h2 id="install-guide-title">下载花魁短剧 App</h2>
|
|
<p id="install-guide-description" data-install-description
|
|
data-ios-description="已识别为 iOS 设备,可前往官方下载页查看安装方式"
|
|
data-android-description="已识别为 Android 设备,可前往官方下载页查看安装方式">请选择适合当前设备的安装方式</p>
|
|
</div>
|
|
<button class="install-guide__close" type="button" data-install-close data-download-close aria-label="关闭安装引导"><img src="/static/images/close.svg?v=huakui-20261010" alt="" width="18" height="18"></button>
|
|
</header>
|
|
|
|
<div class="install-guide__tabs" role="tablist" aria-label="iOS 安装方式" data-install-tabs>
|
|
<button id="install-guide-store-tab" type="button" role="tab" aria-selected="true" aria-controls="install-guide-store" tabindex="0" data-install-tab="store">商店版</button>
|
|
<button id="install-guide-profile-tab" type="button" role="tab" aria-selected="false" aria-controls="install-guide-profile" tabindex="-1" data-install-tab="profile">轻量版</button>
|
|
</div>
|
|
|
|
<div class="install-guide__content" id="install-guide-store" role="tabpanel" aria-labelledby="install-guide-store-tab" data-install-panel="store">
|
|
<div class="install-guide__store-card">
|
|
<span class="install-guide__store-icon"><img src="/static/images/brand-apple.svg?v=huakui-20261010" alt="" width="20" height="20"></span>
|
|
<div class="install-guide__store-copy">
|
|
<div class="install-guide__store-title">花魁短剧 App Store 版</div>
|
|
<p>前往官方下载页,查看商店版是否可用及当前设备的安装方式</p>
|
|
</div>
|
|
</div>
|
|
<div class="install-guide__step install-guide__store-tip">
|
|
<span class="install-guide__badge install-guide__badge--tip">提示</span>
|
|
<div class="install-guide__step-copy"><h3>所在地区未上架时</h3><p>请切换到轻量版,用 Safari 安装描述文件</p></div>
|
|
</div>
|
|
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>需登录 App Store 账号;若显示「不可用」,请返回选择轻量版</span></p>
|
|
<a class="install-guide__action" data-install-action="store" data-navigation-key="install_ios_store" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
|
|
<img src="/static/images/install/external-link.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="install-guide__content" id="install-guide-profile" role="tabpanel" aria-labelledby="install-guide-profile-tab" data-install-panel="profile" hidden>
|
|
<ol class="install-guide__steps">
|
|
<li class="install-guide__step"><span class="install-guide__badge">1</span><div class="install-guide__step-copy"><h3>前往官方下载页</h3><p>用 Safari 打开本页,点击「前往下载页」,查看轻量版是否可用及安装说明</p></div></li>
|
|
<li class="install-guide__step"><span class="install-guide__badge">2</span><div class="install-guide__step-copy"><h3>安装描述文件</h3><p>前往 设置 / 已下载描述文件,选择「安装」并输入密码</p></div></li>
|
|
<li class="install-guide__step"><span class="install-guide__badge">3</span><div class="install-guide__step-copy"><h3>返回桌面打开</h3><p>桌面出现花魁短剧图标即安装完成,建议保存账号凭证</p></div></li>
|
|
</ol>
|
|
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>仅支持 Safari;若在微信 / Telegram 内打开,请先点右上角「在浏览器中打开」</span></p>
|
|
<a class="install-guide__action" data-install-action="profile" data-navigation-key="install_ios_profile" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img src="/static/images/brand-apple.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span></a>
|
|
</div>
|
|
|
|
<div class="install-guide__content" id="install-guide-android" data-install-panel="android" hidden>
|
|
<ol class="install-guide__steps">
|
|
<li class="install-guide__step"><span class="install-guide__badge">1</span><div class="install-guide__step-copy"><h3>前往官方下载页</h3><p>点击「前往下载页」,查看 Android 安装包及适用于当前设备的安装说明</p></div></li>
|
|
<li class="install-guide__step"><span class="install-guide__badge">2</span><div class="install-guide__step-copy"><h3>允许安装未知来源</h3><p>系统提示「禁止安装来源不明的应用」时,点击「设置」开启允许</p></div></li>
|
|
<li class="install-guide__step"><span class="install-guide__badge">3</span><div class="install-guide__step-copy"><h3>打开花魁短剧</h3><p>安装完成后点击「打开」,或在桌面找到花魁短剧图标</p></div></li>
|
|
</ol>
|
|
<p class="install-guide__notice"><img src="/static/images/install/notice.svg?v=huakui-20261010" alt="" width="14" height="14"><span>如系统提示风险,请核实安装包来源后再继续</span></p>
|
|
<a class="install-guide__action" data-install-action="android" data-navigation-key="install_android_apk" data-navigation-name="前往下载页" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img src="/static/images/brand-android.svg?v=huakui-20261010" alt="" width="20" height="20"><span>前往下载页</span></a>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
</div>
|
|
|
|
<script defer src="/static/js/components/install-guide.js?v=huakui-20261010"></script>
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/toast.css?v=huakui-20261010">
|
|
<div
|
|
class="site-toast"
|
|
id="site-toast"
|
|
data-toast
|
|
role="status"
|
|
aria-live="polite"
|
|
aria-atomic="true"
|
|
hidden
|
|
>
|
|
<div class="site-toast__panel" data-toast-panel>
|
|
<img decoding="async" loading="lazy" class="site-toast__icon" data-toast-icon-success src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/check-circle.svg?v=huakui-20261010" alt="操作成功" hidden>
|
|
<img decoding="async" loading="lazy" class="site-toast__icon" data-toast-icon-error src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/error-tip.svg?v=huakui-20261010" alt="错误提示" hidden>
|
|
<p class="site-toast__text" data-toast-text></p>
|
|
</div>
|
|
</div>
|
|
<script defer src="/static/js/common/toast.js?v=huakui-20261010"></script>
|
|
|
|
<script defer src="/static/js/common/sharePage.js?v=huakui-20261010"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/mobileTabbar.css?v=huakui-20261010">
|
|
<nav class="mobile-tabbar" aria-label="移动端主导航">
|
|
<a class="mobile-tabbar__item" href="/" data-navigation-key="mobile_home" data-navigation-name="首页">
|
|
<img src="/static/images/mobile-tabbar/home-muted.svg" width="22" height="22" alt="" aria-hidden="true">
|
|
<span>首页</span>
|
|
</a>
|
|
<a class="mobile-tabbar__item is-active" href="/list/" aria-current="page" data-navigation-key="mobile_short" data-navigation-name="短剧">
|
|
<img src="/static/images/mobile-tabbar/film-active.svg" width="22" height="22" alt="" aria-hidden="true">
|
|
<span>短剧</span>
|
|
</a>
|
|
<a class="mobile-tabbar__item" href="/series/" data-navigation-key="mobile_series" data-navigation-name="剧集">
|
|
<img src="/static/images/mobile-tabbar/tv-muted.svg" width="22" height="22" alt="" aria-hidden="true">
|
|
<span>剧集</span>
|
|
</a>
|
|
<a class="mobile-tabbar__item" href="/profile/" data-navigation-key="mobile_profile" data-navigation-name="我的">
|
|
<img src="/static/images/mobile-tabbar/user-muted.svg" width="22" height="22" alt="" aria-hidden="true">
|
|
<span>我的</span>
|
|
</a>
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
<header class="page-subheader only-h5" aria-label="播放页顶栏">
|
|
<a class="page-subheader__btn" href="javascript:history.back()" aria-label="返回">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-left.svg?v=huakui-20261010" alt="返回">
|
|
</a>
|
|
<div class="page-subheader__title">花魁</div>
|
|
<button class="page-subheader__btn" type="button" aria-label="分享" data-share-page>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/share.svg?v=huakui-20261010" alt="分享">
|
|
</button>
|
|
</header>
|
|
|
|
<div class="page play-page">
|
|
<main class="main play-main">
|
|
<nav class="breadcrumb play-breadcrumb only-pc" aria-label="面包屑">
|
|
<a class="breadcrumb__item" href="/">首页</a>
|
|
<img decoding="async" loading="lazy" class="breadcrumb__sep" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
<a class="breadcrumb__item" href="/list/">短剧</a>
|
|
<img decoding="async" loading="lazy" class="breadcrumb__sep" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
<a class="breadcrumb__item" href="/play/%E9%83%BD%E5%B8%82/">花魁</a>
|
|
|
|
<img decoding="async" loading="lazy" class="breadcrumb__sep" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
<span class="breadcrumb__item is-current">第 1 集</span>
|
|
|
|
</nav>
|
|
|
|
<section class="play-stage" aria-label="播放器">
|
|
|
|
<div
|
|
class="play-player"
|
|
data-play-player
|
|
data-play-mode="main"
|
|
data-playlet-id="1"
|
|
data-chapter-id="10"
|
|
data-can-watch="1"
|
|
data-main-url="/h5/videos/video.m3u8"
|
|
data-preview-url=""
|
|
data-track-drama
|
|
data-media-id="10"
|
|
data-drama-id="1"
|
|
data-drama-title="花魁"
|
|
data-episode="1"
|
|
data-total-episode="3"
|
|
data-video-id="10"
|
|
data-drama-type-id="0"
|
|
data-drama-type-name="短剧"
|
|
data-recommend-trace-id=""
|
|
data-drama-tag-key=""
|
|
data-drama-tag-name=""
|
|
data-drama-duration="123"
|
|
data-pay-type="0" data-need-unlock="0" data-need-vip="0"
|
|
>
|
|
|
|
<div
|
|
class="dplayer-video"
|
|
data-url="/h5/videos/video.m3u8"
|
|
data-main-url="/h5/videos/video.m3u8"
|
|
data-preview-url=""
|
|
></div>
|
|
|
|
|
|
<img decoding="async" loading="lazy"
|
|
class="play-player__cover lazy"
|
|
src="/static/brand/placeholder.svg?v=huakui-20261010"
|
|
data-src="https://img.example/%e6%a8%aa%e5%b0%81.webp"
|
|
|
|
data-play-poster
|
|
alt="花魁"
|
|
>
|
|
<div class="play-player__scrim" aria-hidden="true"></div>
|
|
<div class="play-player__dim" aria-hidden="true"></div>
|
|
|
|
<button
|
|
class="play-player__center"
|
|
type="button"
|
|
aria-label="播放"
|
|
data-play-poster-play
|
|
|
|
>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/play.svg?v=huakui-20261010" alt="播放">
|
|
</button>
|
|
|
|
|
|
|
|
<div class="play-player__badge" data-play-badge>
|
|
|
|
<span class="only-pc" data-play-badge-pc>正片 第 1 集 共 3 集</span>
|
|
<span class="only-h5" data-play-badge-h5>第 1 集 共 3 集</span>
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="play-tabs" aria-label="内容类型" data-play-tabs>
|
|
<button type="button" class="play-tabs__item is-active" data-play-tab="main">正片</button>
|
|
|
|
</div>
|
|
</section>
|
|
|
|
<section class="play-info" aria-label="剧集信息">
|
|
<div class="play-meta">
|
|
<div class="play-meta__title-row">
|
|
<h1 class="play-meta__title">花魁</h1>
|
|
|
|
</div>
|
|
<div class="play-meta__chips">
|
|
<span class="play-chip">全 3 集</span>
|
|
<span class="play-chip">连载中</span>
|
|
<span class="play-chip">2026</span>
|
|
<span class="play-chip">1080P</span>
|
|
</div>
|
|
<p class="play-meta__stats only-pc">
|
|
|
|
|
|
|
|
<span class="play-meta__stat">热度 0</span>
|
|
<span class="play-meta__stat">收藏 <span data-playlet-collect-stat>0</span></span>
|
|
</p>
|
|
<p class="play-meta__stats only-h5">
|
|
|
|
|
|
|
|
<span class="play-meta__stat">热度 0</span>
|
|
<span class="play-meta__stat">收藏 <span data-playlet-collect-stat>0</span></span>
|
|
</p>
|
|
</div>
|
|
|
|
<div class="play-actions">
|
|
<a
|
|
class="btn btn--primary play-actions__btn play-actions__btn--play"
|
|
href="/play/%E9%83%BD%E5%B8%82/10/"
|
|
data-play-main-cta
|
|
data-play-poster-play
|
|
>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/play_hollow.svg?v=huakui-20261010" alt="播放">
|
|
<span data-play-cta-label>立即播放</span>
|
|
</a>
|
|
<button
|
|
class="btn btn--ghost play-actions__btn play-actions__btn--icon"
|
|
type="button"
|
|
aria-label="点赞"
|
|
data-playlet-like
|
|
data-playlet-id="1"
|
|
data-liked="2"
|
|
data-like-raw="0"
|
|
|
|
>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/heart.svg?v=huakui-20261010" alt="点赞">
|
|
<span class="only-pc" data-playlet-like-label>点赞</span>
|
|
</button>
|
|
<button
|
|
class="btn btn--ghost play-actions__btn play-actions__btn--icon"
|
|
type="button"
|
|
aria-label="收藏"
|
|
data-playlet-collect
|
|
data-playlet-id="1"
|
|
data-collected="2"
|
|
data-collect-raw="0"
|
|
|
|
>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/bookmark.svg?v=huakui-20261010" alt="收藏">
|
|
<span class="only-pc" data-playlet-collect-label>收藏</span>
|
|
</button>
|
|
<button class="btn btn--ghost play-actions__btn play-actions__btn--icon" type="button" aria-label="分享" data-share-page>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/share.svg?v=huakui-20261010" alt="分享">
|
|
<span class="only-pc" data-share-page-label>分享</span>
|
|
</button>
|
|
<a class="btn btn--ghost play-actions__btn play-actions__btn--icon" href="/feedback/" aria-label="反馈">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/message-circle.svg?v=huakui-20261010" alt="评论">
|
|
<span class="only-pc">反馈</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="play-synopsis" data-play-synopsis>
|
|
<div class="play-synopsis__head">
|
|
<h2 class="play-synopsis__title">简介</h2>
|
|
<button class="play-synopsis__more" type="button" data-play-synopsis-more hidden>
|
|
<span data-play-synopsis-more-label>展开</span>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
</button>
|
|
</div>
|
|
<p class="play-synopsis__text" data-play-synopsis-text>暂无简介</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="play-episodes" aria-label="选集">
|
|
<div class="play-episodes__head">
|
|
<div class="play-episodes__head-left">
|
|
<h2 class="play-episodes__title">选集</h2>
|
|
<span class="play-episodes__count">
|
|
共 3 集
|
|
连载中
|
|
</span>
|
|
<nav class="play-episodes__sort only-pc" aria-label="选集排序" data-play-episodes-sort>
|
|
<button class="play-episodes__sort-item is-active" type="button" data-play-episodes-sort-item="asc" aria-pressed="true">正序</button>
|
|
<button class="play-episodes__sort-item" type="button" data-play-episodes-sort-item="desc" aria-pressed="false">倒序</button>
|
|
</nav>
|
|
</div>
|
|
<button class="play-episodes__order only-h5" type="button" data-play-episodes-order aria-pressed="false">
|
|
<span data-play-episodes-order-label>倒序</span>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="">
|
|
</button>
|
|
</div>
|
|
|
|
<div class="play-episodes__grid" data-play-episodes-grid>
|
|
|
|
<a
|
|
class="play-ep is-active"
|
|
href="/play/%E9%83%BD%E5%B8%82/10/"
|
|
data-drama-switch
|
|
data-target-episode="1"
|
|
data-target-video-id="10"
|
|
>1</a>
|
|
|
|
<a
|
|
class="play-ep play-ep--coin"
|
|
href="/play/%E9%83%BD%E5%B8%82/11/"
|
|
data-drama-switch
|
|
data-target-episode="2"
|
|
data-target-video-id="11"
|
|
>2</a>
|
|
|
|
</div>
|
|
|
|
<div class="play-episodes__legend">
|
|
<span class="play-legend">
|
|
<i class="play-legend__swatch play-legend__swatch--free" aria-hidden="true"></i>
|
|
<span class="only-pc">免费集 无需登录直接播放</span>
|
|
<span class="only-h5">免费集直接播放</span>
|
|
</span>
|
|
<span class="play-legend">
|
|
<img decoding="async" loading="lazy" class="play-legend__swatch play-legend__swatch--coin" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/coin.png?v=huakui-20261010" alt="金币" aria-hidden="true">
|
|
|
|
<span class="only-pc">金币解锁后永久观看</span>
|
|
<span class="only-h5">金币解锁 永久观看</span>
|
|
|
|
</span>
|
|
</div>
|
|
</section>
|
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/playLinks.css?v=huakui-20261010">
|
|
<section class="play-links" aria-label="官方入口">
|
|
<div class="play-links__row">
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_globe.svg?v=huakui-20261010" alt="最新网址">
|
|
<span class="play-links__label">官方入口</span>
|
|
<a class="play-links__value" href="https://drama.example" >drama.example</a>
|
|
</div>
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_refresh-cw.svg?v=huakui-20261010" alt="备用网址">
|
|
<span class="play-links__label">最新地址发布页</span>
|
|
<a class="play-links__value" href="#" >-</a>
|
|
</div>
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_shield.svg?v=huakui-20261010" alt="永久地址">
|
|
<span class="play-links__label">备用访问地址</span>
|
|
<a class="play-links__value" href="#" >-</a>
|
|
</div>
|
|
</div>
|
|
<div class="play-links__row">
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_award.svg?v=huakui-20261010" alt="防失联地址">
|
|
<span class="play-links__label">海外永久地址</span>
|
|
<a class="play-links__value" href="#" >-</a>
|
|
</div>
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_smartphone.svg?v=huakui-20261010" alt="App 下载地址">
|
|
<span class="play-links__label">官方 App 下载</span>
|
|
|
|
<a class="play-links__value" href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">app.example/download</a>
|
|
</div>
|
|
<div class="play-links__item">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/link_send.svg?v=huakui-20261010" alt="Telegram 群组">
|
|
<span class="play-links__label">官方 Telegram 群</span>
|
|
|
|
<a class="play-links__value" href="#" >-</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
|
|
<div class="play-promo">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/promo.css?v=huakui-20261010">
|
|
<section class="promo-rail" aria-label="推荐">
|
|
|
|
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="a" data-creative-id="" data-ad-location="1" data-ad-slot-key="1" data-ad-slot-name="广告位1" data-ad-title="广告 A" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-a.webp" data-lazy-eager="1" alt="广告 A">
|
|
<span class="tag tag--dark promo-card__tag">广告</span>
|
|
</a>
|
|
|
|
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="b" data-creative-id="" data-ad-location="2" data-ad-slot-key="2" data-ad-slot-name="广告位2" data-ad-title="广告 B" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-b.webp" data-lazy-eager="1" alt="广告 B">
|
|
<span class="tag tag--dark promo-card__tag">广告</span>
|
|
</a>
|
|
|
|
</section>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<section class="play-dual" aria-label="评论与热榜">
|
|
|
|
<link rel="stylesheet" href="/static/css/playComments.css?v=huakui-20261010">
|
|
|
|
|
|
|
|
|
|
|
|
<div
|
|
class="play-comments"
|
|
data-play-comments
|
|
data-comment-page="1"
|
|
data-comment-size="4"
|
|
data-comment-total="0"
|
|
data-comment-loaded="0"
|
|
>
|
|
<div class="play-comments__head">
|
|
<h2 class="play-comments__title">评论</h2>
|
|
<span class="play-comments__count" data-comment-total-label>暂无评论</span>
|
|
</div>
|
|
|
|
<div
|
|
class="play-composer"
|
|
data-play-composer
|
|
data-object-id="10"
|
|
data-object-type="2"
|
|
data-logged-in="0"
|
|
>
|
|
<div class="play-composer__avatar" aria-hidden="true">
|
|
|
|
<img decoding="async" loading="lazy" class="play-composer__avatar-img" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/profile/avatar.png?v=huakui-20261010" alt="默认用户头像">
|
|
|
|
</div>
|
|
<div class="play-composer__field">
|
|
<input
|
|
class="play-composer__input"
|
|
type="text"
|
|
maxlength="200"
|
|
placeholder="登录后发表评论"
|
|
aria-label="发表评论"
|
|
data-comment-input
|
|
readonly
|
|
>
|
|
<span class="play-composer__count" data-comment-count>0 / 200</span>
|
|
</div>
|
|
|
|
<button class="btn btn--primary play-composer__login" type="button" data-login-open>登录</button>
|
|
|
|
</div>
|
|
|
|
<ul class="play-comment-list" data-comment-list>
|
|
|
|
<li class="play-comment play-comment--empty">
|
|
<p class="play-comment__text">暂无评论</p>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<button
|
|
class="play-comments__more"
|
|
type="button"
|
|
data-comment-more
|
|
hidden
|
|
>
|
|
查看更多评论
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
</button>
|
|
</div>
|
|
<script defer src="/static/js/pages/playComments.js?v=huakui-20261010"></script>
|
|
|
|
|
|
<aside class="play-hot" aria-label="热门短剧">
|
|
<div class="play-hot__head">
|
|
<h2 class="play-hot__title">热门短剧</h2>
|
|
<a class="play-hot__more" href="/list/all/0/2/" >
|
|
完整榜单
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/chevron-right.svg?v=huakui-20261010" alt="前往下一项">
|
|
</a>
|
|
</div>
|
|
<ol class="play-hot__list">
|
|
|
|
<li><p class="play-comment__text" style="padding:12px 0;color:var(--muted, #888)">暂无热榜数据</p></li>
|
|
|
|
</ol>
|
|
</aside>
|
|
</section>
|
|
|
|
|
|
|
|
<div class="play-promo play-promo--bottom">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/promo.css?v=huakui-20261010">
|
|
<section class="promo-rail" aria-label="推荐">
|
|
|
|
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="a" data-creative-id="" data-ad-location="1" data-ad-slot-key="1" data-ad-slot-name="广告位1" data-ad-title="广告 A" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-a.webp" data-lazy-eager="1" alt="广告 A">
|
|
<span class="tag tag--dark promo-card__tag">广告</span>
|
|
</a>
|
|
|
|
<a class="promo-card" href="https://ad.example" data-track-ad="external" data-ad-clickable="1" data-ad-id="b" data-creative-id="" data-ad-location="2" data-ad-slot-key="2" data-ad-slot-name="广告位2" data-ad-title="广告 B" data-ad-type="banner" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="eager" class="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="https://img.example/banner-b.webp" data-lazy-eager="1" alt="广告 B">
|
|
<span class="tag tag--dark promo-card__tag">广告</span>
|
|
</a>
|
|
|
|
</section>
|
|
|
|
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/footer.css?v=huakui-20261010">
|
|
<footer class="site-footer">
|
|
<div class="site-footer__inner">
|
|
<div class="site-footer__top">
|
|
<div class="site-footer__brand">
|
|
<div class="brand">
|
|
<picture>
|
|
<source media="(max-width: 768px)" srcset="/static/brand/header.svg?v=huakui-20261010">
|
|
<img class="brand__logo brand__logo--lg" src="/static/brand/footer.svg?v=huakui-20261010" width="124" height="44" alt="花魁短剧">
|
|
</picture>
|
|
</div>
|
|
<p class="block__subtitle">每一帧都值得细看</p>
|
|
<div class="social">
|
|
|
|
<a class="social__item" href="https://x.example/huakui" target="_blank" rel="sponsored nofollow noopener" aria-label="X" data-navigation-key="footer_x" data-navigation-name="X">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/brand-x.svg?v=huakui-20261010" alt="X">
|
|
</a>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
<div class="site-footer__links">
|
|
<nav class="footer-col" aria-label="浏览">
|
|
<h3>浏览</h3>
|
|
|
|
|
|
<a href="/" data-navigation-key="/home" data-navigation-name="首页">首页</a>
|
|
|
|
|
|
<a href="/list/" data-navigation-key="/playlet" data-navigation-name="短剧">短剧</a>
|
|
|
|
|
|
<a data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="/download-app" data-navigation-name="下载APP">下载APP</a>
|
|
|
|
</nav>
|
|
<nav class="footer-col" aria-label="帮助">
|
|
<h3>帮助</h3>
|
|
<a href="/about/" data-navigation-key="footer_about" data-navigation-name="关于我们">关于我们</a>
|
|
<a href="/help/" data-navigation-key="footer_help" data-navigation-name="常见问题">常见问题</a>
|
|
<a href="/feedback/" data-navigation-key="footer_feedback" data-navigation-name="意见反馈">意见反馈</a>
|
|
<a href="https://service.example" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_contact" data-navigation-name="联系我们">联系我们</a>
|
|
</nav>
|
|
<nav class="footer-col" aria-label="条款">
|
|
<h3>条款</h3>
|
|
<a href="/terms/" data-navigation-key="footer_terms" data-navigation-name="用户条款">用户条款</a>
|
|
<a href="/privacy/" data-navigation-key="footer_privacy" data-navigation-name="隐私政策">隐私政策</a>
|
|
<a href="/2257/" data-navigation-key="footer_2257" data-navigation-name="2257 合规声明">2257 合规声明</a>
|
|
<a href="/dmca/" data-navigation-key="footer_dmca" data-navigation-name="DMCA 版权声明">DMCA 版权声明</a>
|
|
</nav>
|
|
<a class="footer-download-mobile" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_download_mobile" data-navigation-name="下载 App">下载 App</a>
|
|
<div class="footer-download">
|
|
<div class="qr-box" data-qr="https://app.example/download" aria-label="扫码下载">
|
|
|
|
</div>
|
|
<div class="footer-download__copy">
|
|
<strong>扫码下载 App</strong>
|
|
<p>iOS / Android 海量短剧每日更新</p>
|
|
<a class="btn btn--primary btn--sm" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener" data-navigation-key="footer_download" data-navigation-name="下载 APP">
|
|
<img decoding="async" loading="lazy" class="icon icon--sm" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
|
|
下载 App
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr class="site-footer__rule">
|
|
<div class="site-footer__legal">
|
|
<p>© 2026 花魁短剧 HUAKUI <span class="site-footer__rights">All rights reserved.</span><span class="site-footer__mobile-adult">仅限 18 岁以上成年人</span></p>
|
|
<p><span class="site-footer__adult">仅限 18 岁以上成年人 </span>本网站所呈现之所有人员,于拍摄当时均已年满 18 岁,符合 18 U.S.C. 第 2257 条规定。</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<noscript><div><img src="https://mc.yandex.ru/watch/112951899" style="position:absolute; left:-9999px;" alt=""></div></noscript>
|
|
<script defer src="/static/common/qrcode.min.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/common/qr.js?v=huakui-20261010"></script>
|
|
|
|
|
|
<div
|
|
class="play-coin play-coin--short"
|
|
data-play-coin
|
|
role="dialog"
|
|
aria-modal="true"
|
|
aria-labelledby="play-coin-title"
|
|
>
|
|
<div class="play-coin__mask" data-play-coin-close aria-hidden="true"></div>
|
|
<div class="play-coin__panel">
|
|
<div class="play-coin__handle" aria-hidden="true"></div>
|
|
<div class="play-coin__head">
|
|
<div class="play-coin__copy">
|
|
<h2 class="play-coin__title" id="play-coin-title">金币不足</h2>
|
|
<p class="play-coin__desc only-pc">本集需 0 金币,当前余额 0 金币,充值后即可播放。</p>
|
|
<p class="play-coin__desc only-h5">本集需 0 金币,当前余额 0 金币</p>
|
|
</div>
|
|
<button class="play-coin__close" type="button" data-play-coin-close aria-label="关闭">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/close.svg?v=huakui-20261010" alt="关闭">
|
|
</button>
|
|
</div>
|
|
<div class="play-coin__sheet">
|
|
<div class="play-coin__row">
|
|
<span class="play-coin__label">当前余额</span>
|
|
<span class="play-coin__value">0 金币</span>
|
|
</div>
|
|
<div class="play-coin__divider" aria-hidden="true"></div>
|
|
<div class="play-coin__row">
|
|
<span class="play-coin__label">本次消耗</span>
|
|
<span class="play-coin__cost">0 金币</span>
|
|
</div>
|
|
</div>
|
|
<p class="play-coin__note">后续付费剧集仍需逐集确认</p>
|
|
<button class="btn btn--primary play-coin__pay" type="button" data-recharge-open>
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/gift.svg?v=huakui-20261010" alt="礼物">
|
|
去充值 首充加赠 10%
|
|
</button>
|
|
<div class="play-coin__foot">
|
|
|
|
<a class="play-coin__app" data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener">
|
|
<img decoding="async" loading="lazy" class="icon" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/download.svg?v=huakui-20261010" alt="下载">
|
|
下载 App 免费看
|
|
</a>
|
|
<button class="play-coin__skip" type="button" data-play-coin-close>暂不观看</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="recharge-modal" data-recharge-modal hidden
|
|
data-unlock-cost="0"
|
|
data-balance="0"
|
|
>
|
|
<div class="recharge-modal__backdrop" data-recharge-close aria-hidden="true"></div>
|
|
<section class="recharge-modal__panel" role="dialog" aria-modal="true" aria-labelledby="recharge-modal-title" tabindex="-1">
|
|
<div class="recharge-modal__handle" aria-hidden="true"></div>
|
|
<div class="recharge-modal__head">
|
|
<div class="recharge-modal__heading">
|
|
<h2 id="recharge-modal-title">金币充值</h2>
|
|
|
|
|
|
<p class="recharge-modal__subtitle recharge-modal__subtitle--desktop">当前余额 0 金币</p>
|
|
<p class="recharge-modal__subtitle recharge-modal__subtitle--mobile">当前余额 0 金币</p>
|
|
|
|
</div>
|
|
<div class="recharge-modal__balance" aria-label="当前余额 0 金币">
|
|
<span class="recharge-modal__coin recharge-modal__coin--balance" aria-hidden="true"><img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/coin-star.svg?v=huakui-20261010" alt="金币"></span>
|
|
<strong data-recharge-balance>0</strong>
|
|
</div>
|
|
<button class="recharge-modal__close" type="button" data-recharge-close aria-label="关闭充值弹窗">
|
|
<img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/close.svg?v=huakui-20261010" alt="关闭充值窗口">
|
|
</button>
|
|
</div>
|
|
|
|
<div class="recharge-modal__packages" role="group" aria-label="选择充值套餐" data-recharge-packages>
|
|
|
|
<p class="recharge-modal__empty" data-recharge-packages-empty>暂无可购买的金币套餐</p>
|
|
|
|
</div>
|
|
|
|
<div class="recharge-modal__methods" role="group" aria-label="选择支付方式" data-recharge-methods>
|
|
|
|
<p class="recharge-modal__empty" data-recharge-methods-empty>请先选择套餐</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<button class="recharge-modal__pay" type="button" data-recharge-pay disabled>立即支付 <span data-recharge-amount>¥0</span></button>
|
|
<p class="recharge-modal__status" data-recharge-status role="status" hidden></p>
|
|
<div class="recharge-modal__foot">
|
|
<span>支付即表示同意《充值协议》</span>
|
|
|
|
<a data-download-open href="https://app.example/download" target="_blank" rel="sponsored nofollow noopener"><img decoding="async" loading="lazy" src="/static/brand/placeholder.svg?v=huakui-20261010" data-src="/static/images/recharge/download.svg?v=huakui-20261010" alt="下载 App">下载 App 免费看</a>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
|
|
|
|
|
|
<script defer src="/static/js/pages/play.js?v=huakui-20261010"></script>
|
|
<script defer src="/static/js/recharge-modal.js?v=huakui-20261010"></script>
|
|
</body>
|
|
</html>
|