Javascript activex动态加载

Javascript activex动态加载,javascript,activex,Javascript,Activex,我有以下问题: 我正在尝试使用dwf viewer应用程序,该应用程序由activex备份,该activex允许在安装插件时查看dwf文件 通常人们会这样使用这个插件: <object classid = "clsid:A662DA7E-CCB7-4743-B71A-D817F6D575DF" codebase = "http://www.autodesk.com/global/dwfviewer/installer/DwfViewerSetup.cab#version=6,0,0,200

我有以下问题: 我正在尝试使用dwf viewer应用程序,该应用程序由activex备份,该activex允许在安装插件时查看dwf文件

通常人们会这样使用这个插件:

<object
classid = "clsid:A662DA7E-CCB7-4743-B71A-D817F6D575DF"
codebase = "http://www.autodesk.com/global/dwfviewer/installer/DwfViewerSetup.cab#version=6,0,0,200"
ID = "Eview"
width = "500"
height = "500"
border="0"></object>
Eview.Viewer.ExecuteCommand("BLACKANDWHITE");
etc..
问题是,我现在正在服务器端的Iframe中创建对象:

<iframe id="dwfFrame" name="dwfFrame" src="plot.aspx" width="100%" height="100%" onload="initDWF()"/>
问题是在我的页面上,我无法进行Javascript调用,因为我没有对该对象的引用,我尝试将它们发布到Iframe,但它不起作用。像这样:

dwfViewer = document.dwfFrame;
dwfViewer.Viewer.ExecuteCommand("BLACKANDWHITE");
dwfViewer.ExecuteCommand("BLACKANDWHITE");
我认为这是因为iframe不是实例化的activex对象,我是否可以找到该对象以便处理它?

试试:

var dwfFrameDoc = parent.dwfFrame.document;
var dwfViewer = dwfFrameDoc.getElementById('Eview');
我不会经常使用多个帧,但这就是您处理另一个帧的方式。所讨论的帧是否是
iframe
,应该无关紧要。每个帧都有自己的
窗口
对象。
文档
是该对象的属性<代码>父级指当前
窗口的父级
,如果它已经是顶层,则指它本身

document.dwfFrame
将获取id为dwfFrame的元素,该元素与iframe的窗口对象不同。即使是这样,也要执行
dwfViewer.ExecuteCommand('BLACKANDWHITE')
将尝试调用
ExecuteCommand
作为iframe窗口的方法,而不是查看器对象

var dwfFrameDoc = parent.dwfFrame.document;
var dwfViewer = dwfFrameDoc.getElementById('Eview');