使用Chrome扩展修改HTTP请求的响应主体
Modify the response body of HTTP requests with Chrome extension
我正在开发Chrome扩展。我想在(第一次)加载页面时修改一些内容。我想知道如果我在chrome.devtools.network.onRequestFinished.addListener
中使用方法getContent()
,那么从该方法返回内容后如何修改?
这种方法是否仅用于网络/流量观测?我可以修改响应正文吗?
这是不可能的。
在Chromium项目中看到这个bug(从2011年11月开始):
- https://bugs.chromium.org/p/chromium/issues/detail?id=104058
关于如何在某些用例中绕过这个限制,有几个相关的讨论:
- 使用内容脚本将代码插入页面上下文
- https://groups.google.com/a/chromium.org/forum/#!消息/apps dev/v176iCmRgSs/iM-72Evf8JgJ
根据Chromium bug DB中的一些讨论,我猜出于安全原因,可能永远不允许修改现有请求的内容,但可能会允许读取响应和重定向(总有一天,当所有阻塞问题都得到解决时)。
是的,您只需要使用webRequest API,您就可以完全控制所有请求,并可以在之前和之后进行修改,以下是完整的文档:
Chrome扩展WebRequest API
(需要注意的是,用户在安装应用程序时必须授予权限)
希望这能有所帮助,如果你正在寻找更具体的信息,请回复我,我可以提供帮助,但文档非常善于告诉你如何设置正确的事件处理:)
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 主体上的addEventListener('mousemove',..)-有多糟糕
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- 为什么可以't我使用了AJAX响应的一部分
- 响应动画手风琴不工作
- 如何从SeleniumWebdriver获取异步Javascript响应
- Ajax调用在Firefox中不会自动响应
- 可以在响应时隐藏iphone上的“播放”按钮以进行视频播放
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 如何在 JavaScript 和 HTML 中更改对输入框的提示响应
- IIS动态HTTP响应标头
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Ajax响应转换
- 主体单击删除功能上的输入框宽度
- 如何在AngularJS应用程序的主体上动态设置溢出
- 从http响应主体下载一个文件
- 使用Chrome扩展修改HTTP请求的响应主体