Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.10.2012, 17:46
Новичок на форуме
Отправить личное сообщение для vikodin Посмотреть профиль Найти все сообщения от vikodin
 
Регистрация: 17.10.2012
Сообщений: 3

не отображается динамический ActiveX
есть объект ActiveX, отображающий потоковое видео.
если я его добавляю статически в код страницы для IE, то видео воспроизводится.
Код объекта
Код:
<OBJECT id='dccsATT' type='application/x-oleobject' height=600 
width=600 classid='CLSID:971FC730-55F1-461f-83FD-B3BF5E1F039E' codebase='AVC_AX_742.cab#version=1,1,2,6'>
<PARAM NAME="Action" VALUE="LiveOpen">
<PARAM NAME="Username" VALUE="*****">
<PARAM NAME="Password" VALUE="*****">
<PARAM NAME="MediaType" VALUE="DEFAULT">
<PARAM NAME="UserId" VALUE="0">
<PARAM NAME="_IPAddress" VALUE="*******">
<PARAM NAME="_Port" VALUE="80">
<PARAM NAME="_Detection" VALUE="2">
<PARAM NAME="DefaultChannel" VALUE="0">
</OBJECT>
Когда добавляю его вот так
Код:
<head>
<title></title>
    <script type="text/javascript">
function OnPageLoad(){
    ActiveX = document.createElement('OBJECT');
    ActiveX.id ='dccsATT1';
    ActiveX.setAttribute('type','application/x-oleobject');
    ActiveX.setAttribute('width',600);
    ActiveX.setAttribute('height',600);
    ActiveX.setAttribute('classid','CLSID:971FC730-55F1-461f-83FD-B3BF5E1F039E');
    ActiveX.codebase = 'AVC_AX_742.cab#version=1,1,2,6';
    par = document.createElement('PARAM');
    par.name='UserId'; par.value='0';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_Port'; par.value='80';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_Detection'; par.value='2';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='DefaultChannel'; par.value='0';
    ActiveX.appendChild(par);
     par = document.createElement('PARAM');
    par.name='NTSC_Video'; par.value='0';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='Action'; par.value='LiveOpen';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='Username'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='Password'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_IPAddress'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='MediaType'; par.value='DEFAULT';
    ActiveX.appendChild(par);
    </script>
</head>
<body onload="OnPageLoad()" style="overflow: auto;">
<div id="div_Body" class="div_Body">
</div>
</body>
</html>
то на странице отображается только рамка объекта с крестиком в левом верхнем углу, видео не воспроизводится. в DOM объект добавляется.
При просмотре DebugBar разница между статическим и динамическим объектами состоит в строке
codebase=AVC_AX_742.cab#version=1,1,2,6 - для статического и
codebase="AVC_AX_742.cab#version=1,1,2,6" - для динамического.
Возникают вопросы:
1) может codebase нужно как-то иначе указывать
2) или ActiveX нужно как-то "запустить" после загрузки страницы
3) или он вообще динамически по-другому создается и добавляется.

Поиск пока особо не помог.
Спасибо всем кто сможет прояснить ситуацию.
Ответить с цитированием
  #2 (permalink)  
Старый 17.10.2012, 18:05
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

vikodin, судя по приведенному вами коду, функция OnPageLoad() не закрыта и нету добавления элемента ActiveX в объектную модель документа
Ответить с цитированием
  #3 (permalink)  
Старый 17.10.2012, 18:22
Новичок на форуме
Отправить личное сообщение для vikodin Посмотреть профиль Найти все сообщения от vikodin
 
Регистрация: 17.10.2012
Сообщений: 3

Извините, простая опечатка. "}" присутствует. Просто функцию переносил из файла скрипта и не скопировал. (переносил для уменьшения необходимого кода). И объект-таки добавляется в ДОМ
Ответить с цитированием
  #4 (permalink)  
Старый 17.10.2012, 18:26
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

А где же эта строчка
document.body.appendChild(ActiveX)

codebase тоже через setAttribute надо вставлять
Ответить с цитированием
  #5 (permalink)  
Старый 17.10.2012, 22:09
Новичок на форуме
Отправить личное сообщение для vikodin Посмотреть профиль Найти все сообщения от vikodin
 
Регистрация: 17.10.2012
Сообщений: 3

"codebase тоже через setAttribute надо вставлять"
изначально так и было, потом поменял на
"ActiveX.codebase = 'AVC_AX_742.cab#version=1,1,2,6';"
результат тот же.

"А где же эта строчка
document.body.appendChild(ActiveX)"
и снова извините, в исходнике и эта строчка есть.

Код:
function OnPageLoad(){
    ActiveX = document.createElement('OBJECT');
    ActiveX.id ='dccsATT1';
    ActiveX.setAttribute('type','application/x-oleobject');
    ActiveX.setAttribute('width',600);
    ActiveX.setAttribute('height',600);
    ActiveX.setAttribute('classid','CLSID:971FC730-55F1-461f-83FD-B3BF5E1F039E');
    ActiveX.codebase = 'AVC_AX_742.cab#version=1,1,2,6';
    par = document.createElement('PARAM');
    par.name='UserId'; par.value='0';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_Port'; par.value='80';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_Detection'; par.value='2';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='DefaultChannel'; par.value='0';
    ActiveX.appendChild(par);
   par = document.createElement('PARAM');
    par.name='Action'; par.value='LiveOpen';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='Username'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='Password'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='_IPAddress'; par.value='*****';
    ActiveX.appendChild(par);
    par = document.createElement('PARAM');
    par.name='MediaType'; par.value='DEFAULT';
    ActiveX.appendChild(par);
    document.getElementById("div_body").appendChild(ActiveX);
}
вот листинг DebugBar после отработки OnPageLoad()
<DIV class=div_Body id=div_Body>
<OBJECT id=dccsATT1 type=application/x-oleobject height=600 width=600 classid=CLSID:971FC730-55F1-461f-83FD-B3BF5E1F039E codebase="AVC_AX_742.cab#version=1,1,2,6">
<PARAM NAME="UserId" VALUE="0">
<PARAM NAME="_Port" VALUE="80">
<PARAM NAME="_Detection" VALUE="2">
<PARAM NAME="DefaultChannel" VALUE="0">
<PARAM NAME="Action" VALUE="LiveOpen">
<PARAM NAME="Username" VALUE="*****">
<PARAM NAME="Password" VALUE="******">
<PARAM NAME="_IPAddress" VALUE="******">
<PARAM NAME="MediaType" VALUE="DEFAULT">
</OBJECT>
</DIV>

Последний раз редактировалось vikodin, 18.10.2012 в 17:40.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не отображается iframe IggyTot Firefox/Mozilla 1 31.07.2012 14:24
ActiveX и всплывающий календарь beralex jQuery 2 20.07.2011 21:03
Динамический список из DIV`ов и INPUT`ов Andrew_li jQuery 5 09.06.2011 15:23
Динамический массив vah-smile Элементы интерфейса 2 30.03.2011 15:19
Почему div не отображается в ИЕ? warobushek (X)HTML/CSS 0 26.04.2010 08:35