小编典典

为什么 JavaScript 只有在 IE 中打开开发者工具一次后才能工作?

all

IE9 错误 - JavaScript 仅在打开开发人员工具一次后才能工作。

我们的网站为用户提供免费的 pdf 下载,并且它有一个简单的“输入密码下载”功能。但是,它在 Internet Explorer 中根本不起作用。

您可以在此示例中亲自查看。

下载通行证是“makeuseof”。在任何其他浏览器中,它都可以正常工作。在 IE 中,两个按钮都不执行任何操作。

我发现的最奇怪的事情是,如果您使用 F12 打开和关闭开发人员工具栏,它会突然开始工作。

我们已经尝试过兼容模式等,没有什么不同。

如何在 Internet Explorer 中进行这项工作?


阅读 88

收藏
2022-03-04

共1个答案

小编典典

听起来您的 javascript 中可能有一些调试代码。

您所描述的体验是包含console.log()或任何其他console功能的典型代码。

console对象仅在开发工具栏打开时被激活。在此之前,调用控制台对象将导致它被报告为undefined.
打开工具栏后,控制台将存在(即使工具栏随后关闭),因此您的控制台调用将起作用。

有几个解决方案:

最明显的一个是通过您的代码删除对console. 无论如何,你不应该在生产代码中留下这样的东西。

如果您想保留控制台引用,您可以将它们包装在一个if()语句中,或者在尝试调用它之前检查控制台对象是否存在的其他条件。

2022-03-04