• bbs1

    重要改进,内核会给插件js统一使用立即执行函数 (IIFE) + try-catch

    (function(){
      try {
        // 代码
      } catch(e) {
        // 捕获异常
      }
    })();

    IIFE 用来隔离变量,try-catch 用来兜底抓错;合起来就是:插件js均视为私有代码,出错也不炸全局。

    新增前端公共 API
    核心在 index.js 中通过 window.bbs1 暴露一组公共函数,供插件 JavaScript 调用。核心脚本先于插件脚本执行,因此这些函数在插件代码运行时一定可用。调用前请判断存在性,便于核心版本回退时优雅降级:

    window.bbs1?.showToast('已保存');
    函数	签名	说明
    showToast	showToast(message)	右下角轻提示,约 1.8 秒后自动消失。页面缺少 #toast 时静默忽略。
    openModal	openModal(title, html)	打开通用弹层,html 作为内容插入。页面缺少弹层节点时静默忽略。
    closeModal	closeModal()	关闭弹层并清空内容;若弹层正等待 openConfirm / openPrompt,该 Promise 以取消值结束。
    openConfirm	openConfirm(message, title = '确认操作')	返回 Promise:确定得到 true,取消或关闭得到 false。
    openPrompt	openPrompt(message, title = '请输入', value = '1')	返回 Promise:确定得到去掉首尾空白的输入字符串,取消得到 null。
    openNotify	openNotify(url)	按核心的私信弹层流程请求 url 并展示。
    formActionUrl	formActionUrl(form)	取表单提交地址,缺失时回退到当前页面地址。
    markButtonPending	markButtonPending(button)	给按钮加提交中状态;页面恢复(pageshow)时由核心统一清除。

    最后由 bbs1 编辑于 2026-10-11 17:58
    主楼
  • yyds

    赞!过几天升级

    #1
  • bbs1

    每天都更新,天天逼着大家升级

    #2
  • yyds

    歇歇吧 多陪陪她!

    #3
  • elm

    手指一点更新完毕,感觉良好!

    #4
  • bbs1

    这是正确态度

    #5

发表回复

登录后回复