无法通过JavaScript访问ActiveX控件

时间:2014-02-06 11:28:43

标签: javascript internet-explorer activex windows-embedded

请查看这个简单的示例代码,将VLC Web插件嵌入IE并访问该插件的属性:

    <div id="player">
        <object type="application/x-vlc-plugin" 
            id="vlc" 
            width="676px"
            height="386px" 
            classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921">  
        </object>
    </div>

    <input type="button" onclick="alert(vlc.VersionInfo);">

这在PC#1上工作正常,给我当前版本的插件。另一方面,在PC#2上,这给出了“未定义”。从调试器中我可以看到vlc-object没有它应该拥有的属性。

让我印象深刻的是PC#2上的插件本身能够播放视频流(将Src-Param添加到对象标签时)。它似乎无法通过JavaScript访问。

到目前为止,我已经尝试过..

  • 在PC#2上将IE安全设置更改为超低
  • 将插件classid添加到预先批准的注册表文件夹
  • 检查可能以某种方式在IE中禁用ActiveX的组策略
  • 几个版本的VLC

非常欢迎任何可能导致这种奇怪行为的想法!

编辑:可能与添加PC#2在Windows Embedded Standard(它是WYSE ThinClient)上运行相关。

2 个答案:

答案 0 :(得分:2)

尝试从JS访问VLC对象(来自NSAPI / ActiveX)时遇到同样的问题。在我的情况下,它取决于VLC的发布。目前,如果我使用2.0.2一切正常(NSAPI和AciveX)。较新的版本似乎打破了VLC对象的JS包装。

您可以尝试2.0.2版本并检查您是否解决了问题。

答案 1 :(得分:0)

我处于向某人推荐Adobe Flash的可疑位置。 VLC active-X插件可能比Flash有更多错误,因为有更多人安装Flash并在Internet Explorer中使用它。 请参阅Magnus Engdal对此问题的回答Video element is not displaying in IE8?

另一种选择是安装不同的浏览器:如果你有安全VLC的安全许可,你也可以安装Firefox或谷歌Chrome或Chromium或Opera ......

Mardie问题非常重要。你是否局限于IE?我很好奇这是怎么回事。