一个网页的js代码错了,但是我又想运行这个网页,只有想办法修改它的js代码。
它的js代码是在script
元素中的,在页面加载的时候就会被执行。
我现在有两种思路:
1.直接修改script
元素中的代码,再刷新时,不从服务端请求新的页面,以这个修改后的代替
2.写一个扩展,在浏览器解析到错误代码之前,修改错误代码
但是,我不知道是否可以实现,或许还有其他方法?
一个网页的js代码错了,但是我又想运行这个网页,只有想办法修改它的js代码。
它的js代码是在script
元素中的,在页面加载的时候就会被执行。
我现在有两种思路:
1.直接修改script
元素中的代码,再刷新时,不从服务端请求新的页面,以这个修改后的代替
2.写一个扩展,在浏览器解析到错误代码之前,修改错误代码
但是,我不知道是否可以实现,或许还有其他方法?
中间人攻击是可以实现的,但是考虑到你说的问题,我就暂时理解成是:页面的代码是内嵌在html里面的,而非是外联的。
我之前尝试过一些方法,例如使用脚本,在页面加载之前,先执行脚本的内容。
如果你的script中出错的是一个函数,或者类似的东西,可以在脚本中通过Object.defineProperty或者Proxy之类的,预先劫持这个变量或者函数。
如果要做中间人攻击,在页面到来的之前篡改页面的话,如楼上所说,使用一些特定的代理方案即可
我最后使用的方法是通过firefox扩展修改js。
使用Firefox的webRequest.filterResponseData
API,可以在html文件渲染前修改其中的内容,这样就可以修正错误的js代码了。
但是webRequest.filterResponseData
好像只能在火狐中使用,document链接
9 回答9.4k 阅读
6 回答5.1k 阅读✓ 已解决
5 回答3.7k 阅读✓ 已解决
5 回答8.1k 阅读✓ 已解决
4 回答8k 阅读✓ 已解决
7 回答10.1k 阅读
4 回答8.8k 阅读
没看见有写Chrome Overrides(65+)的,我来补充个:
如果你能打开这个链接(developers.google.com)