TWebBrowser не может открыть сайт Blogspot

Я использую Delphi XE2 в 64-разрядной версии Windows 7, я помещаю компонент TWebBrowser в форму. Я перехожу на сайт blogspot, например:

Webbrowser1.Navigate('http://maniacpcgame.blogspot.com');

он показывает ошибку JavaScript (ошибка синтаксического анализа HTML), затем я переключаю свойства Silent на True следующим образом:

Webbrowser1.Silent := true;
Webbrowser1.Navigate('http://maniacpcgame.blogspot.com');

Но браузер не может правильно открыть страницу (показывает только фоновое изображение). Я попробовал другие веб-сайты blogspot и получил ту же проблему. Любое решение для правильного отображения веб-сайта blogspot в TWebBrowser?


person ljn    schedule 07.09.2013    source источник
comment
Не удается воспроизвести с помощью Delphi 2009 в 64-разрядной версии Windows 7, IE 9.0.8112.16421. Да, у меня была ошибка JavaScript при загрузке, но я видел страницу с ее содержимым (не только фоновое изображение). В любом случае, с TWebBrowser точки зрения, с этим мало что можно сделать. Вы можете игнорировать ошибки и получить неожиданное поведение на странице или исправить эти ошибки на своем сайте.   -  person TLama    schedule 07.09.2013
comment
^^^+1 тоже не воспроизводится - Delphi XE на 64-битной Windows 7, та же версия IE   -  person whosrdaddy    schedule 09.09.2013


Ответы (1)


Twebbrowser использует IEFRAME

IEFRAME зависит от версии Internet Explorer, которую вы используете на этом компьютере. Вы можете развернуть IEFRAME.DLL (в c:windows/system32) с вашим приложением, чтобы вы могли быть уверены, что везде используется одна и та же версия, и у вас не будет несоответствий между компьютерами.

Однако более новые не будут работать на XP, и есть некоторые требования к DirectX.

Хорошей альтернативой является Delphi Embed chromium, он значительно увеличивает развернутое приложение (+-15 МБ), но вы можете быть уверены, что оно работает везде и всегда (от Windows 8 до XP) и всегда будет создавать одну и ту же страницу. для управления DOM или вставки javascript (для связи со страницей) это будет проще и будет работать более последовательно.

Вот ссылка на последнюю версию: https://code.google.com/p/dcef3/< /а>

person Kapytanhook    schedule 07.09.2013
comment
Последняя версия оболочки Chromium для Delphi: DCEF 3. И я бы не сказал, что манипуляции с DOM проще в CEF. Это чистое зло со снимками DOM. - person TLama; 07.09.2013
comment
Спасибо за новую ссылку, я обнаружил, что манипуляции с домом — это здорово! Что в нем вам не понравилось? Если вам нужно выполнить множество манипуляций, вы можете просто написать файл javascript с помощью JQUERY и вставить все это за 1 раз. - person Kapytanhook; 07.09.2013
comment
В основном это снимки. Вы не работаете с живыми элементами сайта, но посетитель DOM делает снимок сайта, что сильно вас ограничивает (поэтому я бы никогда не стал сравнивать его с MSHTML). - person TLama; 07.09.2013
comment
Снимки @TLama кажутся хорошим решением для создания согласованного дерева DOM, а не живого дерева, которое не поддерживает какое-либо транзакционное чтение (и запись). Чтение из живого DOM звучит как движущаяся цель. - person mjn; 07.09.2013