Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TWebBrowser и SELECT с JavaScript 
:(
    Опции темы
Stern87
Дата 29.11.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 27.11.2007
Где: Украина

Репутация: нет
Всего: нет



Есть HTML-код:
Код

<script type="text/javascript" language="JavaScript">
    function chgYear(year){
        if( year !== "" ){
            document.location.href = "?year="+year;
        }
    }
</script>
. . .
<select name="year" onChange="chgYear(this.value);" style="width:200px">
<option value="" >(Select Year)</option>
<option value="2008" >2008</option>
<option value="2007" >2007</option>
<option value="2006" >2006</option>
<option value="2005" >2005</option>
<option value="2004" >2004</option>
<option value="2003" >2003</option>
<option value="2002" >2002</option>
<option value="2001" >2001</option>
</select>
. . .

Однако в TWebBrowser при выборе с помочью кода:
Код

var i, j: integer;
    iDoc: IHTMLDocument2;
    iDisp: IDispatch;
    iColl: IHTMLElementCollection;
    iSelect: IHTMLSelectElement;
    iOption: IHTMLOptionElement;
begin
  IeBrowser.Document.QueryInterface(IHTMLDocument2, iDoc);
  iDisp := iDoc.all.tags('SELECT');
  iDisp.QueryInterface(IHTMLElementCollection, iColl);
  for i:=1 to iColl.length do
    begin
      iDisp := iColl.item(pred(i),0);
      iDisp.QueryInterface(IHTMLSelectElement, iSelect);
      if (Assigned(iSelect))and(iSelect.name='year') then
        begin
          iDisp := iSelect.tags('OPTION');
          iDisp.QueryInterface(IHTMLElementCollection, iColl);
          for j:=1 to iColl.length do
            begin
              iDisp := iColl.item(pred(j),0);
              iDisp.QueryInterface(IHTMLOptionElement, iOption);
              if iOption.value='2008' then iOption.selected := true;
            end;
        end;
    end;
end;

но JavaScript в SELECT не выполняется.

Но когда ручками делаешь выбор в SELECT'е - всё отлично выполняется.

Помогите пожалуйста разобраться с этой проблемой.

Спасибо.
PM WWW ICQ Skype   Вверх
Stern87
Дата 2.12.2008, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 27.11.2007
Где: Украина

Репутация: нет
Всего: нет



Ок, я понял.

Используя вышеуказанный код Delphi - JavaScript не выполнится, но вот если выбор в SELECT сделать самостоятельно ручками - JavaScript успешно выполнится.

Еще раз прошу помочь с этой проблемой.

Спасибо.

Это сообщение отредактировал(а) Stern87 - 14.12.2008, 17:46
PM WWW ICQ Skype   Вверх
Viy_2007
Дата 3.12.2008, 06:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 27.11.2007

Репутация: нет
Всего: нет



Правильно, и не получится.
Я вижу два варианта решения этой проблемы:
1) переходить самому на скрипт, раз всё так просто;
2) после selected сделать на списке click. вообщем поэкспереминтировать с его методами, чтобы он всё таки понял, что событие onchange произошло.
PM MAIL   Вверх
Stern87
Дата 3.12.2008, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 27.11.2007
Где: Украина

Репутация: нет
Всего: нет



Да, как вариант - это использовать execScript от IHTMLWindow2.

Click у SELECT'а я не нашёл.
PM WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.