ruffle 中文文档 下载 App

扩展右键菜单与自动替换旧 Flash 标签机制

扩展的核心工作流程

Ruffle 浏览器扩展启动后,对每个新页面做三件事:

第一步:DOM 扫描

等页面加载完,扩展遍历 <head> 和 <body>,寻找所有可能包含 Flash 内容的元素:

第二步:解析 SWF 地址

从这些元素的属性里提取出 .swf 文件的 URL(通常在 data、src 或 <param name="movie" value="..."> 里)。

第三步:替换

把原始 Flash 标签从 DOM 里彻底移除,换成 Ruffle 的 <div id="ruffle-player-xxx"> 容器,然后用 WebAssembly 运行时加载那个 SWF。

这就是为什么页面上的 Flash 能「悄悄变成 Ruffle」——不是叠加,是整块替换。原始 Flash Player 根本没机会跑起来,所以不存在安全漏洞风险。

右键菜单:Ruffle 自己加的

在被 Ruffle 接管的 Flash 画布上点右键,弹出的菜单里除了浏览器默认项之外,还多出几个 Ruffle 自己的条目:

如果扩展没识别出来怎么办

某些网站写 Flash 标签的方式特别绕,扩展识别不到。手动排查:

  1. F12 开发者工具 → Elements 面板 → 在搜索框里输 shockwave-flash 或 .swf,手动找到那个元素
  2. 看它的 src 或 data 属性里是不是一个有效的 .swf URL
  3. 如果是,把那个 URL 复制出来,手动在 Ruffle 独立版里打开——能跑就说明扩展没识别,去 GitHub Issue Tracker 报一个「特定网站的 Flash 标签 Ruffle 扩展没识别」的 issue,附上那个 HTML 片段

扩展 vs 网站嵌入脚本

两者都能让访客看到 Ruffle,但工作方式完全不同:

维度浏览器扩展网站嵌入 <script>
谁控制访客的浏览器站长的服务器
访客要不要装要不要
能不能替换别的网站的 Flash能不能,只能替换站长自己页面上的
自动更新扩展商店自动更CDN / 自托管手动
对 CORS / HTTPS 的处理浏览器层面自动适配站长自己处理

如果你是网站站长,选「网站嵌入」那条路——让访客零配置直接用。如果你是访客,装扩展最省事。