你们平时确定都用过火狐的Firebug或者谷歌的调试工具来调试JS,但遗憾的是咱们不能像编辑html,css那样来直接新增或者删除JS代码.css
虽然能够经过调试工具的控制台来动态执行JS代码,但有时候却远远不够用.html
特别是当产线环境不能随意修改文件状况下,用线上环境来调试本地代码更是迫切的需求.编辑器
(每每本地测试经过,上线后倒是各类bug.)工具
今天分享一下如何用Fiddler来修改并调试线上的JS代码.测试
以博客园首页为例子,用我本地的一个js文件来替换它的一个js.spa
查看首页源码发现一个js,就拿它开刷了.调试
打开fiddler,捕获博客园的首页请求. 找到“aggsite.js”的请求.code
这里有个技巧,能够经过 “select”命令来筛选js请求. 在下面的命令框输入“select script”回车便可. 以下图.htm
接着把这个请求拖动到“AutoResponder”面板.blog
拖动以前记得先勾上 “Enable automatic responses”和 “Permit passthrough for unmatched requests”.
而后在Rule Editor的第二下拉框选择 “Find a file”来选择本地的JS文件, 选择后点 Save.
这里我用本地的“test fiddler.js”来替换博客园首页的“aggsite.js”.
“test fiddler.js”内容以下. 就是向body追加一段红色文字.
$(function(){ var p=$("<p/>").text("这是fiddler加上的JS").css("text-align","center").css("color","red"); $("body").prepend(p); });
好了,刷新博客园首页看看效果.
能够看到,咱们替换的js被执行了,接下来就能够在本地使用咱们顺手的编辑器来写JS代码了,
本地保存后,刷新网页就能马上看到效果,就跟在本地开发同样,是否是很方便?
最后想说其实你能够用一样的方式来替换图片,CSS,HTML.
总之一点就是利用线上的环境来测试你的代码,但又不对线上产生影响.
要知道保证不出onlinebug bug是多么的重要,虽然很难作到,但能避免就尽可能吧.
Enjoy!