【发布时间】:2014-01-15 20:24:07
【问题描述】:
操作系统版本:Windows 8.1
MSIE (Microsoft Internet Explorer) 版本:11.0.9600.16476 (KB2898785)
我有一个简单的HTML 代码来创建我的ActiveX Control (AX)。
此代码在所有以前的 MSIE 版本中始终有效,但在 Windows 8.1 上的新 MSIE-11 中它停止工作。
我带来了演示问题的 HTML 代码。
请注意:
- 创建我的 AX (
<OBJECT>) 的静态 HTML 代码始终有效, -
创建我的 AX (
document.createElement) 的动态 JavaScript 代码在 MSIE 11 上失败<BODY> <BR> <BR> <INPUT TYPE="BUTTON" VALUE="CreateAX" OnClick="CreateAX()" STYLE="WIDTH: 89PX" /> <BR> <BR> <!-- This always work: --> <OBJECT ID = "MyCtrl" CLASSID = "CLSID:F417FD96-3D17-4556-80AA-F7CEEE1E3FD8" WIDTH = 100 HEIGHT = 100> </OBJECT> <BR> <BR> </BODY> <SCRIPT LANGUAGE="javascript" TYPE="text/javascript"> function CreateAX() { // This will not work on MSIE 11 var playbackObjectGlobal = document.createElement('object'); playbackObjectGlobal.setAttribute('id', 'MyCtrl2'); playbackObjectGlobal.setAttribute('classid','CLSID:F417FD96-3D17-4556-80AA-F7CEEE1E3FD8'); playbackObjectGlobal.setAttribute('width', '200'); playbackObjectGlobal.setAttribute('height', '200'); playbackObjectGlobal.setAttribute('hidden', 'false'); document.body.appendChild(playbackObjectGlobal); } </SCRIPT>
调试后,我发现我的项目确实被创建了,但没有窗口 (m_hWnd==NULL),因此所有与 GUI 相关的功能和事件都被禁用。
有人熟悉这个问题吗?
谢谢,PazO
【问题讨论】:
-
我无法回答为什么它不能按照您的方式工作。但是您是否考虑过使用“new ActiveXObject(name);”?
-
传统上我们的代码总是使用
document.createElement('object')并且它总是有效,但现在尝试ActiveXObjct(progid)也失败了(虽然我对这个API不是很熟悉,因此可能用错了)。
标签: javascript activex windows-8.1 internet-explorer-11