Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > JavaScript, DOM/DHTML > Как получить значение из codebase?


Автор: oldm 06.09.04, 11:47
Не сильно знаком с Javascript. Потому прошу у Вас помощи.
В общем мне нужен значение аттрибута тега <object> codebase, которое я хочу передавать через <param> в мой ActiveX.
Написал вот так.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <HTML>
    <OBJECT
          id="ActiveX"
          classid="clsid:DBC3AEAC-7661-4A2F-8F9D-E80396447D44"
          codebase="http://localhost/MyActiveForm.cab#version=1,0,0,0"
          width=350
          height=250
          align=center
          hspace=0
          vspace=0
    >
    <PARAM NAME="server" VALUE="javascript:ActiveX.codebase">
    </OBJECT>
    </HTML>


В итоге в мой ActiveX приходит строка undefined, вместо того что на самом деле в codebase.
Подскажите плиз как быть.

P.S.
Пробовал для отладки вставлять в html-код
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <INPUT NAME=kn TYPE=button onClick="javascript:window.alert(ActiveX.codebase)" VALUE=codebase>

результат тот же.

Автор: Mixxx 06.09.04, 16:15
Цитата
codeBase

Попробуй так, но значение должно передаться только после полной загрузки страницы.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <OBJECT
          id="ActiveX"
          classid="clsid:DBC3AEAC-7661-4A2F-8F9D-E80396447D44"
          codebase="http://localhost/MyActiveForm.cab#version=1,0,0,0"
          width=350
          height=250
          align=center
          hspace=0
          vspace=0>
    <PARAM NAME="server" VALUE="">
    </OBJECT>
     
     
    <script TYPE="text/javascript">
    <!--
    window.onload=function()
    {
        var par=document.getElementById('ActiveX').getElementsByTagName('PARAM');
        for(var i=0;i<par.length;i++)
        if(par[i].name.toLowerCase()=="server")
        {
             par[i].value=document.getElementById('ActiveX').codeBase;
             break;
        }
    }
    //-->
    </SCRIPT>

Автор: oldm 06.09.04, 16:49
Mixxx, Спасибо большое. То что надо.

Автор: oldm 08.09.04, 16:52
Немного поспешил сказав то что надо. Передаётся пустая строка, видимо сначала берётся значение
из самого тэга
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    <PARAM NAME="server" VALUE="">
, где VALUE="", а уже потом видимо из скрипта. И в код ActiveXа попадает пустая строка, что не есть хорошо.
Может ещё что-нить посоветуете.

Автор: Mixxx 08.09.04, 17:47
oldm
Тогда может в лоб, продублировать значение codebase в теге param?
Неужели у вас нет такой возможности?

Автор: oldm 09.09.04, 19:54
Mixxx
А оказалось всё очень просто, я уже просто стал методом научного тыка в вашем скрипте все варианты
пробовать и всё таки на правильный наткнулся:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     
    <script TYPE="text/javascript">
    <!--
    window.onload=function()
    {
       ActiveX.server = ActiveX.codeBase;
    }
    //-->
    </SCRIPT>

Спасибо за помощь.

P.S. Волшебный однако этот JavaScript :)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)