Мне нужно было сделать то же самое и просто поместить весь HTML-код, необходимый для тега OBJECT, в строку в JavaScript и просто заменить innerHTML тега div на HTML-код OBJECT, и он прекрасно работает в IE.
// something akin to this:
document.getElementById(myDivId).innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";
Это должно сработать, у меня все нормально - я использую его для встраивания проигрывателя Windows Media в страницу.
ОБНОВЛЕНИЕ: Вы должны запустить приведенный выше код после загрузки страницы через обработчик событий, который либо запускается при событии загрузки страницы, либо, возможно, в ответ на щелчок пользователя. Единственное, что вам нужно сделать, это иметь пустой тег DIV или тег другого типа, который позволил бы нам вводить HTML-код через свойство innerHTML
этого элемента.
ОБНОВЛЕНИЕ: Очевидно, вам нужна больше помощи, чем я думал, что вам нужно? Может быть, это поможет:
Ваш тег BODY должен выглядеть следующим образом: <body onload="loadAppropriatePlugin()">
Есть где-нибудь на вашей странице, где вы хотите, чтобы эта вещь загружалась, пустой тег DIV с атрибутом id
чего-то вроде "Foo" или чего-то еще.
У вас есть такой код в теге <script>
в разделе <head>
:
function getIEVersion() { // or something like this
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
return ((msie > 0) ? parseInt(ua.substring(msie+5, ua.indexOf(".", msie))) : 0);
}
function loadAppropriatePlugin() {
if(getIEVersion() != 0) { // this means we are in IE
document.getElementById("Foo").innerHTML = "<OBJECT id='foo' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'.....etc";
} else {
// if you want to maybe do the same for FF and load that stuff...
}
}
Это помогает?