我正在尝试使用 QtWebKit(特别是 QWebView 小部件)来显示包含 ActiveX 控件的网页。在我第一次尝试时,ActiveX 控件似乎没有加载。我想知道 QtWebKit 是否真的支持 ActiveX 控件,并且我无法立即找到任何以某种方式给出答案的文档。
QtWebKit/QWebView 是否支持 ActiveX 控件?
AFAIK 唯一支持 ActiveX 控件的渲染引擎是 MSIE。但是,有一个 QT 组件将包装一个 ActiveX 控件(称为QAxWidget IIRC)和一个模拟 netscape 插件的 QT浏览器插件框架。您也许可以使用这些在 QT 容器中嵌入 ActiveX 控件并通过 Webkit(它支持 netscape 插件 API)显示它。
这是一个相当复杂的方法,但是使用浏览器插件框架制作一个组件相当简单,并且在页面上显示它也很简单。ActiveX 包装器组件可能很容易构建到这种类型的插件中,因此实现它可能并不那么复杂。
虽然 WebKit 可以用作 ActiveX 控件,但它不支持其中的 ActiveX 控件。
虽然 WebKit 不承载 ActiveX 控件,但您可以使用 NPAPI 插件来包装 ActiveX 插件。如果您可以使用它的许可证 (LGPL),则ff-activex-host已经提供了此功能。