Tampermonkey脚本自动打开XML源码时遇权限错误求助
问题解答
错误原因
这个错误完全是Firefox的浏览器安全规则导致的,HTTP头(比如Content-Security-Policy)可能会加剧限制,但核心原因是Firefox禁止脚本通过location.replace或location.href直接跳转到view-source:协议的URL——这是浏览器针对特殊内置协议的保护机制,防止脚本未经用户许可就切换到源码视图。
修正后的脚本
要实现自动在新标签页打开view-source链接,需要改用window.open创建新标签页,同时完善规则覆盖HTML和XML文件,避免重复执行:
// ==UserScript== // @name Auto Open View Source // @version 0.2 // @description Auto open view-source for HTML/XML files in new tab // @include /^.*\.(html|xml)$/ // @exclude /^view-source:.*\.(html|xml)$/ // @grant none // ==/UserScript== (function() { 'use strict'; // 打开新标签页加载view-source链接 window.open(`view-source:${window.location.href}`, '_blank'); // 可选:若需要关闭原页面,取消下方注释 // window.close(); })();
补充说明
window.open绕开了Firefox对view-source协议的跳转限制,因为这属于主动创建新标签页的行为,符合浏览器安全逻辑- 脚本通过
@include规则同时匹配HTML和XML后缀的文件 @exclude规则确保已处于view-source视图时不会重复触发
内容的提问来源于stack exchange,提问作者Royal Foxy
相关产品推荐
相关产品推荐

