学校禁用CTRL+U,自动跳转view-source页面的JS脚本报错求助
问题解决:自动跳转至网页源代码页面的JS脚本修复
错误原因分析
- 第一段代码误用
fetch:fetch是用于发起HTTP/HTTPS请求获取资源的API,完全不处理view-source:这种浏览器内部协议,而且它返回的是Promise对象,直接赋值给location.href会导致浏览器解析错误,返回"bad request"。 - 第二段代码直接赋值
location.href的问题:部分浏览器会把view-source:当成普通字符串而非内部协议,无法触发源代码查看功能,因此跳转后显示空白页面。
正确实现代码
方式1:在新窗口打开源代码
window.open(`view-source:${window.location.href}`);
方式2:在当前页面跳转
const sourceUrl = `view-source:${window.location.href}`; const link = document.createElement('a'); link.href = sourceUrl; link.target = '_self'; link.click();
说明
使用window.open或者创建a标签模拟点击的方式,浏览器能正确识别view-source:这个内部协议,从而正常跳转到对应的网页源代码页面,规避直接赋值location.href带来的协议解析问题。
内容的提问来源于stack exchange,提问作者Hyyped
相关产品推荐
相关产品推荐

