Привет всем!
На HTML-странице есть наш ActiveX (мы сами писали). При загрузке страницы по идее сначала должна показываться другая часть страницы, а потом уже (если все проверки пройдены успешно), должен показываться этот ActiveX (это некий контрол, кстати). Но при загрузке страницы в IE из-за этого контрола (из-за того, что в нем есть атрибут codebase), вылезает окно в Explorer, которое, получается, ни к селу, ни к городу, потому что сначала должны показываться другие надписи, к которым это окно отношения не имеет. Так вот, я убрала из кода тэг <object> и пыталась добавить его динамически в тот момент, когда нужно показать этот ActiveX (вернее, немного раньше, а потом уже делала его видимым) -когда все проверки пройдены успешно. Делала я следующее...
Как было (это все внутри таблицы):
<td id="Ocx1TD" width="270" colspan="4" rowspan="5">
<object classid="clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" id="Ocx1" width="270" height="106" codebase="ocx1.cab"></object>
</td>
Как я теперь сделала (это все происходит в методе OnLoad):
var obj;
var ocxcell = document.getElementById("Ocx1TD");
obj = document.createElement("OBJECT");
obj.classid = "clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
obj.id = "Ocx1";
obj.width = 270;
obj.height = 106;
obj.codebase = "ocx1.cab";
ocxcell .appendChild(obj);
Так вот, ActiveX в результате этих действий почему-то в IE не показывается, а на его месте непонятно что — какая-то странная область, которая как будто прозрачная, и если переключиться на другую вкладку с этой, то, потом вернувшись назад, можно увидеть на месте этого контрола то, что было на этом месте на предыдущей странице. Просто когда этот контрол не может загрузиться, потому что он не инсталлирован в системе, то на его месте бывает крестик, а тут непонятно что... Кто мне скажет, как это лечить?
Здравствуйте, XJess, Вы писали:
XJ>Так вот, ActiveX в результате этих действий почему-то в IE не показывается, а на его месте непонятно что — какая-то странная область, которая как будто прозрачная, и если переключиться на другую вкладку с этой, то, потом вернувшись назад, можно увидеть на месте этого контрола то, что было на этом месте на предыдущей странице. Просто когда этот контрол не может загрузиться, потому что он не инсталлирован в системе, то на его месте бывает крестик, а тут непонятно что... Кто мне скажет, как это лечить?
1. Если кликнуть в эту "область", что происходит?
2. Удаётся ли выделить ее TABом? Что будет, если это сделать и нажать Space или Enter?
... << RSDN@Home 1.2.0 alpha rev. 677>>
Здравствуйте, XJess, Вы писали:
XJ>Табом выделить не удается, но у меня не получается почему-то попасть табом не только на этот элемент, но и на те, что просто зашиты в страницу и нормально отображаются.
1. Попробуйте временно заменить этот ActiveX на заведомо рабочий — например, на Media Player.
2. Убедитесь, что проблема не связана с активацией внедрённого контента — см.
http://msdn.microsoft.com/ru-ru/library/ms537508(VS.85).aspx#loading
3. Когда всё точно заработает, попробуйте снова со своим контролом.
... << RSDN@Home 1.2.0 alpha rev. 677>>
А если вместо appendChild-а попробовать создать этот объект через innerHTML ?
Ocx1TD.innerHTML = "<object classid=\"clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\" id=Ocx1 width=270 height=106 codebase=\"ocx1.cab\"></object>
";
Так срабатывает?