前端小纠结–Browser&WebView调试工具和文档整理

为什么又这篇文章呢?因为最近在做IE 11的兼容性测试,の有生之年还会做IE 适配,我没想到。

期间遇到了一个小问题,没想到竟然没搞定。这么简单,我竟然搞不定…..我对自己的经验和技术水平产生了怀疑,所以决定整理一下,浏览器调试方面的工具和资料。

调试协议(devtools-protocol)

首先说我知道的,远程调试协议(devtools-protocol)很重要,因为只要浏览器或者webview实现了调试协议,我们不管用什么工具都可以方便的调试,好像目前这方面没有标准, 如果有大家告诉我,chrome-devtools-protocol做的最好。

VS Code debugger plugins

因为VS Code的流行,所以诞生了一个针对调试的debugger for xxx系列的插件。很多插件还是Microsoft自己开发的,微软YES.

vscode官方列表

有一些已经过时,并且有推荐的替代的地址。

Chrome

Chrome没啥介绍的调试工具官方做的最好,没有之一。

Firefox

  • firebug

    以前做的非常好的工具,以至于最后直接集成到firefox内部。

IE

介绍一个IE 11版本的,其它低于IE 11的我推荐你使用google chrome frame,虽然谷歌已经在2013停止维护了,但是对于低于IE 11的还是有很大的帮助的。微软官方提供的IEDiagnosticsAdapter,虽然现在已经停止维护了,但是它最后更新在2015年,IE 11好像是2013年发布的(当时我在上大学…..),实现了chrome-devtools-protocol v1.1,我特意看了一下现在协议发展到v1.3,所以可以使用chrome devtools调试IE,本来很大希望,后来发现就是鸡肋,哎,聊胜于无了。

低于IE 11版本

官方的介绍的gif

但是我亲自试了一下发现效果没这么好,查看DOM元素已经没有互动效果了,难道我的Chrome版本太高了???Chrome v75,可能Chrome版本太高,devtools协议版本较高,有机会找个低版本Chrome尝试下。

测试的结果
测试的结果

VS Code调试IE 11尝试

我思考,既然IE Diagnostics Adapter实现了devtools protocol v1.1,做了代理转发,debugger for chrome也是实现的devtools protocol ,我是否可以使用VS Code的debug模式,开启chrome attach模式试一下呢?

思路:VS Code –>debugger for chrome –> attach port 9222 –> IE Diagnostics Adapter –> IE 11

结论:VS Code 通过debugger for chrome的attach模式,成功链接。但是就成功一次,其余的尝试导致IE Diagnostics Adapter一直奔溃。虽然失败了,但是我还是很高兴,因为至少说明我的思路是正确的,解决问题的时候,思路(方向)最重要,要是方向搞错了,那可要浪费很多精力咯。:)

总结

折腾了大半天,还是有点收获,最少收获了解决问题的思路和VS Code的debugger系列。希望这篇文章对还在和IE 11互相折磨的同行有点帮助。

关注公众号,发现更多精彩内容。

参考

chrome-devtools-protocol

remotedebug

vscode-chrome-debug-core

WICG-devtools-protocol

vscode-chrome-debug-core

IEDiagnosticsAdapter

attach-vs-code-debugger-to-internet-explorer

ie-developer

how-to-attach-vs-code-debugger-to-internet-explorer-11