如何调试网站的 IE8 客户端问题?

Posted

技术标签:

【中文标题】如何调试网站的 IE8 客户端问题?【英文标题】:How to debug a IE8 client-side issues for a website? 【发布时间】:2011-04-03 02:50:24 【问题描述】:

我网站的一个用户在安装 IE8/WinXP 时遇到了 javascript 问题,代码执行显然中途中断,但没有警告框或其他提示说明原因,我无法在本地复制该问题。如何从他的系统中获取任何信息,以便开始调试?

弄清楚代码中止的位置会非常有帮助,但 AFAIK IE8 没有像 Firefox 的错误控制台那样只记录警告的东西。我知道 IE8 内置了开发者工具,但如果用户不是开发者,它还有用吗?

以下问题建议远程登录到客户的系统,但我不确定这是否可以安排。

How to remotely debug customer issues with a website

【问题讨论】:

您是否有权访问 WinXP/IE8 设置并可以在本地复制问题,还是仅在他们的设置中存在? 如前所述,我无法在 IE8 本地复制问题。 【参考方案1】:

如果用户足够精通技术,他们可以在 IE8 中打开 Javascript 登录。 (这并不难,但我们都知道用户通常对电脑有多好......):

让他们去Internet Options -> Advanced。有一个“显示有关每个脚本错误的通知”选项,应该选中它。现在,这应该会导致记录所有 Javascript 错误 - 您可以通过单击黄色警告三角形来查看它们,iirc,该三角形将出现在 Javascript 损坏的网站上(也就是世界上几乎每个网站......)。然后,用户可以将此信息复制给您。

它确实依赖于用户相当精通技术 - 你真的只是想接触他们的机器。

【讨论】:

谢谢,这是目前为止最好的主意 -- 会试一试的。【参考方案2】:

IE7/IE8 有一个名为开发者工具的插件,它非常好(可与 FireFox 的 FireBug 相媲美),您可以在客户端为您的 javascript 进行所有调试、监视等操作。

在 SO:Firebug alternative for the IE 上查看类似(重复?)帖子

【讨论】:

请阅读问题——我的用户不是开发人员,我无法访问他的机器。 你的 JavaScript 中有 try-catch 块吗?如果是,您可以执行一些日志记录或警报机制来检测它发生的确切步骤/位置。如果它在任何特定条件下发生在客户端,请尝试获取所有数据/确切步骤以进行重新创建。【参考方案3】:

IE 8 dev tools 相当方便,但我认为它们对非开发人员没有任何帮助......您可能会要求他安装它们,启动调试器,并让它在所有错误时中断.但即使这样对于非开发人员来说也可能过于技术化。此外,您会被困在要求他准确描述错误发生的位置和方式。

对他的机器进行物理或远程访问将是最佳选择。还要确保你有明确的说明来重现错误,以防你在本地遗漏了一些东西。

最后一个选择是将日志记录添加到您的 javascript 中以捕获和记录错误,也许它们会给您一些线索。

【讨论】:

【参考方案4】:

您仍然可以要求此人打开开发人员工具,转到脚本标签并开始调试。即使他不知道当某些代码遇到异常时,您可能会得到有用的信息意味着什么。

过去我们通常会去找那个客户帮助他/她。

事实证明,大多数情况下某些脚本没有正确加载或没有及时加载。

【讨论】:

以上是关于如何调试网站的 IE8 客户端问题?的主要内容,如果未能解决你的问题,请参考以下文章

Fiddler是最强大最好用的Web调试工具之一--网站抓包分析

在 Internet Explorer 中调试网站

Nginx 兼容IE8

在客户端机器上调试发布版本

IE8常见兼容问题及解决方法总结

如何让样式既兼容IE8也兼职IE7