Cloudreve icon indicating copy to clipboard operation
Cloudreve copied to clipboard

【功能建议】在侧边栏的自定义模块中,支持Js代码(脚本代码)

Open xiaoxiao2365 opened this issue 1 month ago • 1 comments

相关问题描述: 当前侧边栏的自定义模块可能仅支持静态内容(如文本、HTML)或有限的动态功能,无法通过 JavaScript 实现更灵活的交互逻辑,例如:

根据用户行为动态更新内容(如点击按钮切换显示状态) 与后端 API 进行数据交互(如实时加载数据) 实现自定义动画或复杂交互效果 这限制了侧边栏的功能扩展性,无法满足用户对个性化和动态交互的需求。

期望的解决方案:

  • 支持 JS 脚本注入:在侧边栏自定义模块中允许用户输入 JavaScript 代码,系统会在模块加载时执行该脚本。
  • 安全沙箱机制:对用户输入的 JS 代码进行安全限制(如禁止访问敏感 DOM 元素、限制跨域请求),避免恶意代码影响系统安全。
  • API 支持:提供基础的模块交互 API,例如:
  • 模块内部 DOM 操作的便捷方法
  • 与系统主框架的通信接口(如触发全局事件、获取用户信息)

替代方案考虑:

  • 预设交互组件:提供固定的交互组件(如按钮、计数器)供用户选择,无需编写代码。但灵活性远不及直接支持 JS。
  • iframe 嵌入:允许嵌入外部页面实现动态功能,但会增加系统复杂度和安全风险,且与主系统的交互会受限。

补充说明: 应用场景:用户可通过 JS 实现侧边栏天气组件、倒计时工具、自定义数据统计图表等动态功能。 安全优先级:需严格限制脚本权限,例如禁止操作window.top、限制fetch请求域名白名单等,防止 XSS 攻击。 易用性:可提供基础 JS 示例代码(如点击事件、数据渲染),降低用户使用门槛。

xiaoxiao2365 avatar Nov 01 '25 04:11 xiaoxiao2365

支持

foxccs avatar Nov 03 '25 00:11 foxccs