Имя: Пароль:
1C
1С v8
Проблема с COMОбъект("InternetExplorer.Application") для IE9
0 Mashinist
 
21.02.13
21:08
Есть такой код

   Сайт = Новый COMОбъект("InternetExplorer.Application");
   Сайт.Navigate("http://xxx.xxx.com/");
   Состояние("Загрузка сайта ...");
   Пока Сайт.ReadyState <> 4 Цикл
       ОбработкаПрерыванияПользователя();
   КонецЦикла;
   Состояние("");
   Сайт.Document.forms["vin_check"].vin_.value = "...";

В IE8 работает нормально
А в IE9 Поле объекта не обнаружено (vin_check)

В чем разница? Неужели есть разница в DOM-модели?
1 Mashinist
 
22.02.13
00:36
апну разочек
2 ВалераОшкин
 
22.02.13
00:38
> http://xxx.xxx.com/

ты на порнуху из 1С ходишь?
3 Mashinist
 
22.02.13
00:42
порнуха это http://www.xxx.com/
есть разница.
4 Mashinist
 
22.02.13
01:02
ну можно в ИЕ9 вот так работать
Сайт.Document.getElementById("vin_").value = "..."

Но что самое гнусное, что еще в ИЕ9 и Document.body.innerHTML возвращает не такой результат
ну формально то HTML одинаковый, но как текст он разный
типа
<div id="warning"><strong> и <DIV ID=warning><STRONG>

как бы еще понять какой ИЕ установлен на компе....
5 Jaap Vduul
 
22.02.13
01:29
document.parentWindow.navigator.appVersion
6 Mashinist
 
22.02.13
16:03
(5)Спасибо

Вот еще возник вопрос

Выполняю скрипт так

Сайт.Document.parentWindow.eval("getj()");

При этом объекту нужно некоторое время на отработку скрипта
Но Сайт.ReadyState не меняется
Как узнать, что скрипт закончил работу?
7 Mashinist
 
23.02.13
01:21
ну получается, что события никакого нету и тупо нужно проверять innerHTML на предмет появления нужных данных
или не появления...
8 Mashinist
 
23.02.13
01:31
и еще выяснилось, что Сайт.Document.getElementById("vin_").value
работает и в ИЕ8 и в ИЕ9

Но document.parentWindow.navigator.appVersion у ИЕ9 нету

Получается как-то фигово... потому как нельзя сделать универсально
Попытка/Исключение как кривой вариант...
9 Mashinist
 
24.02.13
02:39
Так все же как узнать, что скрипт изменил страничку?

Сайт.Document.parentWindow.eval("getj()");
10 Mashinist
 
24.02.13
03:27
ну кроме как циклом ни как не узнать догрузился ли скрипт.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс