### 提交前检查 - [x] 我已搜索过现有 issues,并确认这不是重复问题。 - [x] 在条件允许的情况下,我已尽量使用最新的 stable 或 beta 版本复现该问题,并确认问题仍然存在。 - [x] 我已确认这是 ScriptCat 本身的问题,而不是在 Tampermonkey 或 Violentmonkey 中可以正常运行的用户脚本兼容性问题。 ### 问题描述 论坛用户反馈: https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=10409&page=1#pid104534 ### 复现步骤 360 X 浏览器 ### ScriptCat 版本 v1.5.0 ### 系统 / 浏览器及版本 windows 360 X 浏览器 ### 相关脚本 / 日志 / 截图 _No response_
Activity
CodFrm commentedon Nov 2, 2026
已在 Windows 实机复现,报错与论坛截图一致:
验证环境
23.1.1298.64132.0.6805.0(通过 CDP 读取)v1.5.0官方 Release 的 Chrome ZIP,未修改代码,以解压扩展方式加载复现与对照
使用 https://scriptcat.org/zh-CN/script-show-page/1 的同一个
.user.js地址:chrome-extension://<id>/src/install.html?url=...。.user.js地址,安装页可以正常加载;已实际完成安装并读回脚本存储记录(测试脚本以禁用状态安装)。定位结果
在失败页和正常页分别直接调用 API,结果如下。两者最终的安装页 URL 相同:
chrome.storage.local.get()Invalid context type provided.typeof chrome.tabsundefinedobjecttypeof chrome.runtime.getContextsundefinedfunctionchrome.runtime.sendMessage()因此,本次错误实际发生在安装页读取扩展存储时,不是
runtime.getContexts()的参数传错,也不是脚本内容解析失败。现象指向:360 X 在“网页新开标签 → DNR 重定向到扩展安装页”这条路径上,给页面提供了不完整的扩展 API 上下文。尚未确认浏览器内部为何这样分类,不能据此直接认定是某个具体的安全策略、进程隔离或 Chromium 内部缺陷。
兼容方向的最小实测
通过临时后台监听器验证,未修改扩展文件:
chrome.tabs.update(sender.tab.id, { url: sender.url })同 URL 重新导航:未解决。runtime.sendMessage()请求后台,再由后台chrome.tabs.create({ url: sender.url })新建同一安装地址:安装界面正常加载,chrome.storage.local.get()恢复正常,chrome.tabs恢复为object。可以考虑在安装页读取存储前识别这种异常上下文,由后台重新创建安装标签。正式实现时应校验同扩展发送者、主框架、精确安装页路径与标签身份,增加一次性恢复标记防止循环,并保留用户手动确认安装;正常浏览器无需走此兼容分支。
以上只验证了恢复路径可行,尚未实现正式补丁,也未做跨浏览器回归。用户临时可复制脚本
.user.js链接,在新标签页直接打开。