其实关键部分一小段就说完了
进入远程调试的页面后没有反应,打开chrome的调试界面出现Uncaught TypeError: document.registerElement is not a function
这一错误,很可能是由chrome版本问题导致,可以尝试在程序内使用另一个qwebengineview打开调试地址,或是使用低于80版本的浏览器(79版本的亲测可行),也许未来更高版本的浏览器或qt会解决这个问题。
关于QWebEngine和QWebChannel的使用
最近在尝试使用QWebEngine和QWebChannel做个qt内嵌网页并可以与之交互的demo。
具体使用方法可以参考
Qt嵌入浏览器(一)——QWebEngineView实现浏览器基本功能
最清晰Qt与JS通过qwebchannel交互例子
我认为这两篇文章写的都非常不错,我就不复制粘贴啦。
对html的调试方法其实链接的第一篇文章就有了,只不过我不太想在程序中添加应用界面,就没按那个做(结果这种做法就是解决方案之一),使用chrome浏览器进行调试的方法如下:
Qt QWebEngineView 调试
结果我操作的时候却出现了问题,打开调试页面的地址浏览器没有反应。在我发布这篇文章的时候,这个问题相对的还算比较新(似乎做类似功能的也比较少,毕竟80版本就开始出问题了,现在浏览器最新版本都83了),网上资料比较少,最后终于在stack overflow上找到了遇到相同情况的人并发现了解决方案。
原文链接:
Qt QWebEngine Remote Debugging: Chrome developer tools no longer work
知道问题出在浏览器版本上之后,就有办法了。
Uncaught TypeError: document.registerElement is not a function问题的解决办法
一、像Qt嵌入浏览器(一)——QWebEngineView实现浏览器基本功能中的做法,使用另一个QWebEngineView打开调试地址。
二、使用80以下版本的Chrome浏览器。
(我都尝试了,本人重新安装了79版本的浏览器,两种方法均可以正确进行调试)