v3 MD 按钮功能文档(聊天室)
v3 按钮统一语法:[!按钮:文字|动作|参数](动作见《MD扩展语法规范v3.md》第四章,语法版本 v3.8)。
一、按钮类型
1. 跳转按钮
md
[!按钮:跳转百度|https://www.baidu.com]点击后新窗口打开链接。(注意:跳转 只是动作,没有 [!跳转:...] 组件,必须挂在按钮上)
2. 复制按钮
md
[!复制:复制邀请码|INVITE-2026]点击复制指定文本到剪贴板,并弹出提示。
3. 发送按钮
md
[!发送:回复收到|收到,谢谢!]
[!按钮:发送|发送:开打!]点击自动发送指定内容到聊天室。
4. 弹窗按钮
md
[!弹窗:📖 说明|**欢迎**!这是弹窗内容:
- 支持粗体/列表/表格
- 图片:
- 嵌套按钮:[!按钮:复制码|复制:8888] [!按钮:二层|弹窗:二层|嵌套成功!]点击弹出弹窗,内容支持完整 MD 渲染(图片仅弹窗内允许,最多 10 个弹窗)。
5. 确认按钮
md
[!确认:确定删除?|发送:已确认删除]点击先弹出确认框,确认后才执行动作。
6. 隐藏按钮(无样式)
md
[!按钮:点我执行|发送:隐藏按钮触发了|隐藏=1] ← 初始隐藏的按钮,需要时用 `显示:名` 显示注:v3.8 起
隐藏组件语义改为"隐藏指定 id 组件"([!隐藏:名],配合动作隐藏:名/显示:名显隐)。 若想实现"无按钮样式的隐形可点击区域",请改用无样式的按钮/复制组件或配合动作链实现。
二、动作按钮(全部动作)
按钮动作 = 任意 v3 动作,直接写在内容位:
md
[!按钮:掷骰|随机:骰=1,6&发送:🎲 {骰}] ← 随机 + 动作串
[!按钮:抽签|洗牌:名单,取1&发送:抽到 {名单}] ← 洗牌抽签
[!按钮:翻页|变量:页=取余({页}+1,10)] ← 数学函数
[!按钮:开灯|开关:灯] ← 切换开关
[!按钮:启动|倒计时:game] ← 启动倒计时
[!按钮:暂停动画|动作链:跳动,暂停] ← 控制动作链
[!按钮:行动|分支:{选择}=1→发送:攻击;2→发送:防御;其他→发送:无效] ← 多分支三、条件动作按钮
md
# 格式:动作?条件:否则动作
[!按钮:打卡|发送:✅ 打卡成功&变量:天数={天数}+1?{已签}!=1:发送:今天已打过卡啦!]
[!按钮:攻击|随机:伤害=5,15&变量:血量={血量}-{伤害}?{血量}>10:发送:⚠️ 血量告急!]
[!按钮:高级操作|弹窗:🔐 管理员面板|管理员专属内容?{身份}=管理员:发送:没有权限]
[!按钮:抽奖|发送:🎉 中大奖!?{抽}~大奖:发送:没中,再试一次]四、点击次数限制 click
| 写法 | 含义 | 场景 |
|---|---|---|
click=*1 | 每人只能点 1 次 | 签到、每日任务、投票防刷 |
click=*5 | 每人独立 5 次 | 答题机会、抽卡次数 |
click=1 | 所有人合计只能点 1 次 | 抢沙发、抢红包、先到先得 |
click=@张三:2 | 仅张三 2 次,其他人无限 | 指定人操作 |
click=5@张三:2 | 全局 5 次 + 张三 2 次 | 混合限制 |
md
# 按钮只能点一次(每人)
[!按钮:✋ 签到|发送:✅ 签到成功!|click=*1]
# 按钮限制所有人只能点一次(全局)
[!按钮:🧨 抢头彩|发送:我是第一个抢到的!|click=1]
# 答题:每人 3 次机会
[!按钮:🔍 查看答案|弹窗:📖 答案|42|click=*3]
# 管理员专属 5 次
[!按钮:⚙️ 管理操作|发送:管理员操作|click=@admin:5]点击次数按按钮身份记录(localStorage 持久化),刷新消息后限制仍生效。
五、通用参数
颜色
md
[!按钮:红色|发送:红|#f00]
[!按钮:绿色|发送:绿|#0f0]ID(供动作链/显示/隐藏引用)
md
[!按钮:开始|发送:GO|id=btn1]
[!动作链:目标=btn1;颜色=#f00;延时=300|循环]音效 / 动画
md
[!按钮:叮|发送:有音效|音效=https://example.com/sound.mp3]按钮直接支持 音效=URL 参数(与动作链操作集的 音效= 一致,播放一次)。
六、完整示例
md
[!按钮:跳转百度|https://www.baidu.com] [!复制:码|TEST-2026] [!发送:收到|收到!]
[!弹窗:📖 说明|**欢迎**!嵌套 [!按钮:复制码|复制:8888]]
[!确认:确定?|发送:已确认]
[!按钮:骰子|随机:骰=1,6&发送:🎲 {骰}|click=*1]
[!按钮:抢|发送:抢到!|click=1|#f00]
[!按钮:管理|弹窗:面板|面板内容...?{身份}=管理员:发送:无权限]