我对 Web 开发非常陌生,并且一直在编写一些通过 ActiveX 使用 WScript.Shell 的 javascript。我知道除了 IE 之外的浏览器不支持 ActiveX。
在通过谷歌进行一些挖掘之后,我发现我可以通过 NPAPI 在所有基于 Web 工具包的浏览器上做类似的事情。不过,我什至不知道从哪里开始。是否可以通过 NPAPI 做我想做的事情?如果是这样,我会从哪里开始?
我对 Web 开发非常陌生,并且一直在编写一些通过 ActiveX 使用 WScript.Shell 的 javascript。我知道除了 IE 之外的浏览器不支持 ActiveX。
在通过谷歌进行一些挖掘之后,我发现我可以通过 NPAPI 在所有基于 Web 工具包的浏览器上做类似的事情。不过,我什至不知道从哪里开始。是否可以通过 NPAPI 做我想做的事情?如果是这样,我会从哪里开始?
只要您只关心 Windows,您就可以简单地使用 NPAPI 插件来包装现有的WScript.Shell
- 但请注意插件必须嵌入到页面中;没有等价物new ActiveXObject("...")
。这也意味着您必须复制脚本接口或为其编写自动调度程序。
要编写插件,请查看FireBreath 项目(免责声明:我是它的共同所有者),它已经为您提供了最常见任务的解决方案。如果您想对脚本接口进行自动调度,请查看ff-activex-host 的实现(特别是scriptable.h
and axhost.cpp
)。
虽然你不能这样做new ActiveXObject
,但你的 javascript 可以向 DOM 添加一个对象标签,例如
var plugin = document.createElement('div');
plugin.innerHTML = "<OBJECT id='plugin0' blah blah blah ></OBJECT>";
document.body.appendChild(plugin);