【发布时间】:2020-06-03 03:17:56
【问题描述】:
最近在一些软件更新(自动 Windows 10 更新,可能还有 Chrome 自动更新)之后,用于从 Qt 的 QWebEngine 进行远程调试的开发人员工具停止工作。 JavaScript 控制台显示:
Uncaught TypeError: document.registerElement is not a function
at Object.UI.registerCustomElement (shell.js:formatted:18064)
at shell.js:formatted:18178
at shell.js:formatted:18266
devtools_app.js:formatted:2606 Uncaught ReferenceError: SDK is not defined
at devtools_app.js:formatted:2606
有问题的代码(来自 shell.js)是这样的:
UI.registerCustomElement = function(localName, typeExtension, prototype) {
return document.registerElement(typeExtension, {
prototype: Object.create(prototype),
extends: localName
});
}
什么是 shell.js,它来自哪里?这个问题的原因可能是什么?
该网页实际上是在 Qt 5.12.3 网络浏览器中运行的,但我将 Chrome(远程)用于开发工具。
我也同时将 Angular 7.x 升级到了 Angular 8,但不再相信这是相关的。
我的 Chrome 当前版本为 80.0.3987.116(官方版本)(64 位)。
更新 我刚刚尝试下载旧版本的 Chromium。 (我尝试了版本 77.0.3823.0,因为这可以追溯到 2019 年年中。)在那里调试工作正常。
【问题讨论】:
-
很好的答案,谢谢大家。另外:我提交了 Qt 错误报告,但由于不适用而被关闭。正如其他人指出的那样,解决方案是使用旧版本的 Chromium,或者构建 Qt 的演示浏览器之一,并将其用于调试。 (即确保用于远程调试的浏览器与被调试的浏览器版本相同。)
标签: angular qt qtwebengine