首页 > 解决方案 > Microsoft Edge F12 和 Microsoft Edge 开发工具预览崩溃

问题描述

Microsoft Edge F12 工具和 Microsoft Edge Dev Tool Preview 应用程序在打开时崩溃。在使用新 Microsoft Edge Chromium 版本的同一网站上不会出现此问题。

在经过 7 个小时的调试后,我正在写这个问题,目的是自我回答

我正在使用刚刚推出的 Office 插件的新 Microsoft Edge WebView 开发 Excel 插件,并将 IE11 替换为带有 Edge 的 Excel 中的嵌入式 IFrame(请参阅https://developer.microsoft.com/en-us /office/blogs/microsoft-edge-webview-for-office-add-ins/)。在上个月推出之后,问题就出现了。

崩溃是可预测的,在激活工具 5 秒后发生。当在 Edge 浏览器中使用 F12 工具时,以及使用独立的 Dev Tools Preview 远程连接到在 MS Excel 中运行的 Edge 浏览器时,会发生这种情况。

(我不会放app事件日志,因为我已经解决了)

标签: exceltypescriptoffice-jsmicrosoft-edgeadd-in

解决方案


这是 Microsoft 错误,而不是编码错误。

它总是在使用 Typescript 并定义一个只有一个元素的多维数组时发生,并且只在异步函数中

async myFunc(){
  let x:number[][] = [[9]]; //Edge F12 tool will crash simply by having this line
}

该问题不会出现在非异步函数中,如果变量被定义为类成员也不会出现。如果定义了多个元素,则不会发生这种情况。解决方法是将变量定义为私有类成员

public x:number[][] = [[9]]; //ok as member variable

let x:number[][] = [[9,2]]; //ok - even in async function

对于那些正确地问“为什么要定义一个只有 1 个元素的多维数组”的人来说。这是因为 MS Excel 是一个二维数组,为了设置单元格的值,Excel API 需要二维数组 Excel.Range.values[][] =any[][]。因此,如果您只想设置一个单元格的值,则必须提供一个只有一个值的多维数组。

注意。我没有向 Microsoft 提出这个错误,因为他们不再支持 Microsoft Edge Dev Tools 预览版,而是专注于推出 Edge Chromium 版本,因此弃用了这些工具。Edge Chromium 开发者版本中不会出现此问题,但我不知道 Edge Chromium 何时会作为 Excel 中的嵌入式浏览器推出(我们上个月才刚刚离开 IE11)


推荐阅读