Javascript ActiveX динамическая загрузка - PullRequest
0 голосов
/ 13 июня 2011

У меня следующий вопрос: я пытаюсь использовать приложение для просмотра dwf, оно резервируется с помощью 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()"/>

в plot.aspx я пишу динамический dwf, а затем при загрузке iframe, activex открывается и dwf отображается правильно.

   // Now output the resulting DWF.

    OutputReaderContent(Response, byteReader);

Проблема на моей странице, я не могу сделать Javascriptвызовы, потому что у меня нет ссылки на объект, я попытался передать их в Iframe, но это не работает.Вот так:

dwfViewer = document.dwfFrame;
dwfViewer.Viewer.ExecuteCommand("BLACKANDWHITE");
dwfViewer.ExecuteCommand("BLACKANDWHITE");

Я полагаю, это потому, что iframe не является экземпляром объекта activex, могу ли я в любом случае получить этот объект, чтобы я мог работать с ним?

1 Ответ

1 голос
/ 15 июня 2011

Попробуйте:

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

Я не слишком часто играю с несколькими кадрами, но так вы бы обращались к другому кадру.Не должно иметь значения, что рассматриваемый кадр - iframe.Каждый кадр имеет свой собственный объект window.document является свойством этого объекта.parent относится к родителю текущего window или к себе, если он уже является верхним уровнем.

document.dwfFrame даст вам элемент с идентификатором dwfFrame, который отличается отоконный объект фрейма.Даже если бы это было так, dwfViewer.ExecuteCommand('BLACKANDWHITE'); попытался бы вызвать ExecuteCommand как метод окна iframe, а не как объект просмотра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...