你有几个选择来解决这个问题。最好的选择是在 Internet Explorer 中禁用“显示有关每个脚本错误的通知”设置。由于您正在运行 HTA,因此您可以通过编程方式修改 HKEY_CURRENT_USER 注册表设置(或者只需手动执行一次。)
第二种方法肯定更像是一种 hack,但是当我在 IE 进行选项卡式浏览之前在 HTA 中创建选项卡式浏览器时,我自己解决了这个问题。而不是导航到 iframe 中的 URL,而是希望 AJAX 请求内容,预先设置一个脚本块,将 window.onerror 设置为您选择的函数。然后将整个内容注入到 iframe 中。这种方法将吞下任何错误,并让您可以根据需要报告它们。
除了注入 onerror 脚本之外,您还需要对锚点进行一些预解析,以便后续点击通过 ajax 注入处理程序进行路由。这被证明是相当复杂的,因为您实际上是开始编写自己的浏览器。我仍然拥有该项目的源代码,因此我会将其发布到 bitbucket 存储库并让您探索我的方法。
否则最后的选择是向每个站点的管理员发送一封电子邮件,并告诉他们修复他们该死的错误!!!!但我怀疑这个选项会为你成功:D
编辑:
加载旧项目后,我发现该解决方案不像以前那样可行。x-frame-options 标头指令现在阻止 google.com 从 IE8 开始甚至加载到 iframe 中。由于某种原因,window.onerror 陷阱没有捕获 iframe 中的错误(实际上可能是嵌套的 iframe 问题,但我没有可行的解决方案。)
但是我仍然可以选择检查错误对话框的“不再显示此消息”选项。这使错误对话框停止为我报告问题,并且不需要管理员权限。