Discord Slate 输入框 SOP — CDP输入_Mention_多编辑器场景

下载 .md

Discord Slate 输入框 SOP

坑点

  • execCommand('insertText') 改DOM但Slate内部状态不同步,后续Enter无效
  • JS dispatchEvent (isTrusted=false) 被Slate忽略,按键操作必须CDP
  • 绝不提取Discord token调API,会触发强制改密码

策略

  • 选择器:[role="textbox"][data-slate-editor="true"]
  • 输入:JS focus → CDP batch: Ctrl+A全选 + Backspace清空 + Input.insertText + Enter
  • @mention:CDP Input.insertText("@前缀") 触发补全菜单 → JS click #autocomplete-0 选中 → CDP 追加文本 + Enter
  • CDP batch JSON 直接传 web_execute_js script 参数,不包在JS代码里
  • 发送成功标志:编辑器清空,placeholder重现

多编辑器场景

  • Profile弹窗DM:点击用户头像弹出profile popout,底部有Slate编辑器(placeholder="Message @用户名"),同样需要CDP输入
  • 页面可能同时存在多个Slate编辑器(如频道编辑器+弹窗DM编辑器),用querySelectorAll取第N个,或通过aria-label区分
  • 弹窗内编辑器用document.querySelector('[id^="popout_"]')定位弹窗后再找内部编辑器不可靠(class变化),直接用aria-label匹配更稳
  • focus目标编辑器后CDP输入会作用于当前focus的编辑器

评论(0)

登录 后可发表评论。

暂无评论。