如何在 IE11 中发现损坏的 html/javascript?

How to discover broken html/javascript in IE11?

我在这里尝试使用 polyfill 使服务器端 Blazor 在 IE11 中工作: https://github.com/Daddoon/Blazor.Polyfill

我的示例 Blazor 应用刚刚冻结。我在调试 window 中没有看到任何消息。我假设我创建的组件库有问题。我意识到 polyfill 特定于 Blazor 基础设施。一个例子在这里,如果你使用 IE11,它应该加载刚才提到的 polyfill: https://blazorfabric.azurewebsites.net/

但是,我不知道如何去发现我使用的哪个 API 或哪个 html 元素在 IE11 上是不允许的。是否有扫描代码以查找 IE11 潜在问题的工具?是否有一些可以(临时)添加的大型 polyfill 最有可能使其工作?

编辑 1/22/20 因此,通过纯粹的猜测(随机选择一个东西,通过 caniuse.com 查看它是否在 IE11 上不受支持),我发现自定义 css 属性在 IE11 上不起作用。解决这个问题的 polyfill 是:https://github.com/nuxodin/ie11CustomProperties

页面现在加载并可以正常工作。我真的不能让开发人员控制台做很多事情,但页面确实有响应,而且看起来(大部分)不错。

这仍然没有回答问题。如果调试器没有在一行代码上抛出异常,则不清楚要做什么。

我不太确定,但看到你的项目代码似乎里面有 WASM(基于你的依赖项)。 如果是这样的话,IE11 根本不支持 WASM (https://caniuse.com/#feat=wasm)。我在某处读到有关 WASM polyfill 的信息,但我确定这不是一个好主意。

编辑:

许多不受支持的功能会在这里或那里触发错误,但 javascript 无法捕获异常。如何检测这种情况下的问题。

  • 在 JS 功能的情况下,有时 window 对象或其他标准对象上存在一些 属性,一些函数,或者可能是一个动作是允许的...
  • 对于其他非 js 功能,尝试检测该功能的间接结果(或没有结果)。例如:尝试捕获关联的事件,或尝试检测某些元素的 dom 位置,或尝试检测该特征的某些 css-changed-属性 ...每种情况是一个完全不同的场景。
  • 对于没有其他选项负责的最极端情况,检测来自 window.navigator.userAgent 的浏览器版本或来自 window.navigator 对象的其他 属性。然而,这不是 100% 可靠的方法,可能会导致误报或漏报。

希望这对您有所帮助!