在调试使用Google后端的客户端应用时,我添加了一些调试版本的功能,并使用Chrome开发者工具脚本编辑器插入它们。
然而,这种方法存在许多局限性,首先是编辑器似乎并不总是使用去缩小文件,而当JS文件长度为35K行时,这是一个问题。
另一个问题是在加载期间完成的所有初始化都使用原始的“未修补”函数,因此这并不理想。
我想用我自己的本地副本替换远程javascript.js
文件,大概是使用文件名上的一些正则表达式,或者任何合适的策略,我很乐意使用Firefox或Chrome,如果有的话比另一个容易。
答案 0 :(得分:19)
基本上,正如@BrockAdams所确定的,根据要求,这些类型的问题有几种解决方案,它们遵循2种方法中的任何一种。
浏览器API switcharoo。 firefox和chrome都支持浏览器扩展,可以利用特定于平台的API分别在firefox和chrome的情况下为“onbeforeload”或“onBeforeRequest”注册事件处理程序。 chrome API目前是实验性的,因此这些工具很可能在firefox下更好地开发。 绝对可以执行所需操作的2个工具是AdBlock plus和Jsdeminifier两者都有源代码可用。
这两个firefox应用程序的关键点是它们在浏览器获取它之前拦截Web请求并在http / https加密阶段的另一侧运行,因此可以看到然而,正如the other post中所确定的那样解密的响应它们并不能完成整个事情,尽管jsdeminifier非常有用,但我没有找到一个firefox插件来完全按我想要的那样做,但我可以从中看到那些以前的插件,可以同时使用firefox和chrome 。虽然他们实际上并没有按要求行事。
基于代理的拦截功能这绝对是普通HTTP环境中更好的选择,有一大堆代理,例如pivoxy,fiddler2,Charles Web HTTP代理,以及推测一些我没有特别注意的东西,比如支持过滤某种类型的snort。
我自己最简单的解决方案是firefox上的foxyproxy和privoxy,并配置一个user.action和user.filter来检测页面的url,然后应用一个过滤掉原来的src标签的过滤器,用于我自己的之一。
https案例。代理与插件 当请求是https时,代理无法看到请求网址或响应正文,因此无法进行冷却交换。但是,有一个选项适用于那些喜欢搞乱浏览器的人。这就是中间人SSL代理。 Charles Web HTTP proxy似乎是解决此问题的主要方法。基本上它的工作方式是当你的浏览器向远程HTTPS服务器发出请求时,ssl代理拦截请求,并从服务器的ip地址生成服务器证书,它与自己的根CA签署,并发送回浏览器。浏览器显然抱怨自签名证书,但是在这里你可以选择将ssl代理根CA证书安装到浏览器中,让浏览器迷惑并允许ssl代理人在中间进行操作并对原始响应进行替换和过滤体。
替代推广您自己的Chrome扩展程序 我决定使用我自己的chrome扩展程序,我打算提供它。目前它处于一个非常硬编码的我自己的需求状态,但它工作得很好,即使对于https请求,另一个好处是浏览器插件解决方案可以与浏览器开发人员工具更紧密地集成。
答案 1 :(得分:16)
还有一个工具Requestly - Chrome扩展程序,可用于重写网址,并使用本地托管库替换您的生产库,设置简单,界面非常友好。
看看这个:
PS:我知道这已经得到了回答,但我仍然回答这个问题,因为这对未来的读者非常有益。