Skip to content

代码规范

如果不懂代码也没关系,下方模板库有完整的代码可以直接复制哦!

名称定位
开场设置容器.chat_opening_container
开场介绍.roleIntro
开场内容设置容器.scene_content
聊天内容容器.chat_content_container
聊天气泡头像容器.chat_avatar_container
聊天气泡容器.chat_bubble_container
聊天气泡内部容器.chat_bubble_inner_container
聊天角色回复气泡容器.chat_reply_bubble
聊天自己发送气泡容器.chat_my_bubble
聊天角色回复文本角色说的话.chat_reply_dialogue_text
聊天角色回复文本心里活动.chat_reply_thought_text
聊天角色回复文本动作.chat_reply_action_text
聊天最新回复消息更多操作容器.chat_actions_container
更多按钮容器.chat_more_button
重说按钮容器.chat_retry_btn
踩按钮容器.chat_dislike_btn
名称定位
整个聊天页面容器#chat_page_container
聊天页日间模式容器.chat_dayMode
聊天页夜间模式容器.chat_nightMode
聊天页日间模式背景颜色设置.chat_dayMode::after
聊天页背景图设置#chat_page_container(background-image需要加 !important)
名称定位
顶部栏容器#chat_header
顶部栏左侧容器#chat_header_left
顶部栏返回按钮#chat_header_left_icon
顶部栏角色头像#chat_header_left_avatar
顶部栏角色名字#chat_header_left_name
顶部栏右侧容器#chat_header_right
顶部栏日间/夜间模式切换按钮#chat_header_right_mode_toggle
顶部栏分享按钮#chat_header_right_share
顶部栏喜欢按钮容器#chat_header_right_favorited_btn
顶部聊天提醒容器#chat_tips_title
名称定位
整个底部栏区域容器#chat_input_bar_container
底部区域栏内部容器#chat_input_bar_inner
底部切换语音图标容器#chat_input_bar_voice_btn
底部语音模式图标按钮.voice_btn(默认夜间模式颜色)
底部语音图标按钮日间模式.voice_day_btn
底部文字输入框容器#chat_input_bar_text_container
底部文字输入框#chat_input_bar_text_input
底部文字输入框智能提示按钮容器#chat_input_bar_smart_container
底部文字输入框智能提示按钮.smart_btn
底部文字输入框智能提示按钮高亮.smart_light_btn
底部语音模式容器#chat_input_bar_voice_container
底部输入模式图标容器#chat_input_bar_input_btn
底部输入模式图标按钮.input_btn(默认夜间模式)
底部输入模式图标按钮日间.input_day_btn
底部录音按钮#chat_input_bar_voice_speek_btn
底部发送按钮容器#chat_input_bar_send_btn
底部发送按钮.send_btn(默认夜间模式)
底部发送按钮日间模式.send_day_btn
底部更多按钮容器#chat_input_bar_features_btn
底部更多按钮.features_btn
底部更多按钮日间模式.features_day_btn

在创作流程中,我们会对部分字段做安全过滤/审查。

禁用内容清单:

  • 行内事件属性:所有 on*(如 onclickonloadonerroroninputonscroll 等)
  • script 标签<script>...</script> 会被移除
  • 危险链接协议
    • href="javascript:..."
    • href="data:..."data:image 场景会更宽松,但仍建议避免)
  • 外链脚本<script src="..."> 会被移除
  • 高风险容器标签iframeobjectembedappletmeta(会被移除)

✅ 推荐写法

  • 只写纯文本或简单结构化 HTML(<div><p><span><br> 等)
  • 避免在开场设计里实现交互(点击/跳转/请求),交互应放在叙引模板里,并遵守叙引 JS 规则

🚫 HTML(DOM)违规清单

  • 行内事件属性:任何 on*(如 onclick)都会被移除
  • 危险协议
    • href="javascript:..."
    • href="data:..."(除图片 data:image 外仍建议避免)
  • 危险标签iframeobjectembedappletmeta
  • script[src]:任何外链脚本都会被移除并提示违规

无需编写外层 \“````包裹标识,直接写入内部内容即可。

📜 JS(script)违规清单

禁止出现以下能力/关键字(命中后该 <script> 会被丢弃):

  • parent.(例如 window.parentparent.xxx
    • ✅ 允许 parentElementparentNode
    • ⚠️ 不要把变量命名为 parent 再写 parent.xxx,会误触规则
  • eval(
  • Function((仅构造函数;不影响 function () {} 声明)
  • setTimeout('...')setInterval('...')(字符串形式执行)
  • document.cookie
  • localStoragesessionStorage
  • indexedDB
  • XMLHttpRequest
  • fetch(
  • WebSocket
  • window.open(
  • top.
  • location=
  • import((动态导入)
  • 禁止的 CSS 特性@import@font-faceexpression(...)javascript:content 属性值只允许纯文本/空字符串(禁止 html 标签和 url)
  • 选择器收敛htmlbody*:root 及后代选择器(如 body .xxx)会被替换为作用域容器
  • 规模限制:总字符数 ≤ 40000,规则数(按 { 计数)≤ 500
  • 包含不可见控制字符、方向控制符
  • 包含 <>(会被剔除)

1. 为什么预览能显示但交互失效?

Section titled “1. 为什么预览能显示但交互失效?”

通常原因:

  • 使用了 onclick=”…” 等行内事件属性,被 DOM 清洗移除
  • script 因命中禁用关键字被丢弃(提交提示会列出片段)

2. 为什么提交时报”模板不安全”?

Section titled “2. 为什么提交时报”模板不安全”?”

提交时会做脚本审查与 DOM 清洗,常见触发点:

  • 脚本出现 parent. fetch XMLHttpRequest eval Function
  • HTML 里出现 onclick javascript: script[src]

标签格式

  • 视频:<video src="资源链接" controls width="640" height="360" autoplay loop muted preload="auto" poster="封面链接"></video>
  • 音频:<audio src="资源链接" controls autoplay loop muted preload="auto"></audio>

属性说明

  • autoplay:自动播放|muted:静音
  • loop:循环播放|preload:预加载
  • poster:视频封面|controls:显示控制面板

播放异常排查

  • src 仅填可访问的线上 https 链接,禁用本地路径
  • 无法播放先单独打开链接校验资源有效性
  • 自动播放建议搭配 muted 规避浏览器限制