2009-06-30 3 views
3

Я пытаюсь добавить элемент ActiveX динамически на страницу с помощью jQuery. Приложение успешно; однако управление не инициализируется, когда это делается таким образом. Я считаю, что IE вызывает метод OnCreate элемента управления ActiveX, когда страница, содержащая элемент управления, завершила рендеринг. Проблема в том, что тег отсутствует на странице до тех пор, пока рендеринг не будет завершен, поэтому OnCreate никогда не вызывается.Можно добавить элемент управления ActiveX на страницу с помощью javascript?

Я не уверен, что это проблема, это просто догадка. У кого-нибудь есть опыт? Можно ли заставить IE вызывать OnCreate в определенное время?

Управление работает нормально, если тег находится в html. Единственный раз, когда я вижу проблемы, - это когда я добавляю объект на страницу через javascript.

Обновление: Мне нужно знать, что делает IE, когда он сталкивается с

<object> 

тег на странице во время рендеринга. В этом контексте управление работает отлично, поэтому IE в то время вызывает что-то. Мне нужно вызвать это вручную, после того как я добавлю элемент управления на страницу post render.

Спасибо, Пит

+0

Код? :) –

+0

Извините? JQuery ('тело') добавить (ActiveX). Вы действительно должны это видеть? – slypete

+0

Да, да. Попросить других попытаться отладить в темноте - плохая идея, потому что первое предположение состоит в том, что вы не знаете, что делаете. – EricLaw

ответ

1

Вы можете создать экземпляр элемента управления в полностью кросс-платформенной недружественным образом с использованием новых ActiveXObject (ProgID). ProgID - это строка формы "appName.typeName". например,

var excel; 
excel = new ActiveXObject("Excel.Application"); 
... 

Пример будет работать только в том случае, если на вашем компьютере установлено устройство excel.

+0

Спасибо, вы можете объяснить здесь именование, blah.blah? У меня есть исходный код элемента управления, поэтому мне просто нужно знать, что искать. В настоящее время все, что я предоставляю, это CLSID и кодовая база в теге объекта. – slypete

+0

Знаете ли вы, что это такое? Например, действительно ли приложение в приведенном выше примере реализует интерфейс IDispatch? У меня есть пользовательский элемент управления ActiveX, который мне нужно определить для этих значений. – slypete

0

У меня была аналогичная проблема с вашим сегодня с помощью java-апплета под IE. Моим обходным решением (я хотел, чтобы апплет после того, как страница закончила рендеринг) заключалась в динамическом создании невидимого iframe с src, указывающим на простую html-страницу с моим апплетом. После загрузки iframe я назвал его родителем, чтобы сообщить, что апплет был загружен.

+0

Я не могу использовать iframe, поскольку этот элемент управления загружается в инфраструктуру виджета, которая поддерживает перетаскивание. – slypete

Смежные вопросы