|  | Проблема с 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 | 
        > 
 
 ты на порнуху из 1С ходишь?
 |  | 
    
        | 3
    
        Mashinist   22.02.13✎ 00:42 | 
        порнуха это 
 есть разница.
 |  | 
    
        | 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 | 
        ну кроме как циклом ни как не узнать догрузился ли скрипт.     |  |