:: Visual Foxpro, Foxpro for DOS
AddEventListener или почему WebBrowser отображает не все web-сайты?
shumik73
Автор

Сообщений: 513
Откуда: Алматы
Дата регистрации: 10.05.2006
Есть web-сайт iagent.kz который отображается в IE11 без ошибок

[attachment 28980 1.jpg]

oForm=CREATEOBJECT("Form")
oForm.Width=800
oForm.Height=600
oForm.AddObject("WebBrowser","Olecontrol","Shell.Explorer.2")
oForm.WebBrowser.Navigate2("http://www.iagent.kz")
oForm.WebBrowser.Width=800
oForm.WebBrowser.Height=600
oForm.WebBrowser.Visible= .T.
oForm.Visible= .T.

Но если этот же web-сайт загрузить в WebBrowsere на форме,
то выходят ошибки и отображение уже другое и скрипты не срабатывают.

[attachment 28982 4.jpg]

Для тестирования открыл на 30 компьютерах и оказалось что только на 2-х компьютерах это сайт открылся в рабочем состоянии.

Теперь пытаюсь разгадать что влияет на правильную работу WebBrowserа?
- Чистка кэша и сброс настроек до заводских не помогает
- Версия Win?
- Проверял на IE11. Может различия в версии или пакетах обновления?
- Может версия FrameWork?

Подскажите может есть у кого идеи - Как запустить это web-сайт?
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Запустить его в IE, а не в WebBrowser контроле.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
shumik73
Автор

Сообщений: 513
Откуда: Алматы
Дата регистрации: 10.05.2006
Igor Korolyov
Запустить его в IE, а не в WebBrowser контроле.
Запустить смогу в любом браузере
но чтобы можно было выбрать информацию и одним кликом экспортировать в базу нужно открыть в WebBrowser контроле.

Вижу эта проблема возникает часто, потому как этот вопрос задают на разных форумах в инете:

shumik73
Internet Explorer, начиная с 9-й версии, будет поддерживать метод addEventListener() для навешивания событий, согласно стандарту.
В предыдущих версиях IE (до IE8 включительно) для этой цели использовался нестандартизированный метод attachEvent().

shumik73
ie в режиме интрасети автоматиччески включает режим совместимости с ie8. А через vpn это не происходит.
Я думаю лечится установкой последнего апдейта SharePoint.

И как отключить это пресловутый режим совместимости?
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
"Любой браузер" не поддерживает COM-автоматизацию, а рисовать плагины/дополнения/скрипты (чтобы программно работать в других, более адекватных браузерах), я полагаю ты не очень то и жаждешь. IE всё же можно автоматизировать и поуправлять им "извне".
веббраузер-контрол - это хитрО урезанный IE, и как там можно его "понастраивать", я не в курсе. Возможно что никак - может быть так оно и задумано...
В любом случае я бы лично не стал ковыряться с этим. Те же WebExtension-ы которые сейчас поддерживаются (ну до определённой степени, конечно - есть свои нюансы и различия) основной линейкой браузеров - включая даже MS-овский Edge - более прямой путь IMHO.
P.S. Ну и как всегда очевидная ремарка от Кэпа: Для работы с внешним источником информации следует использовать те или иные АПИ (договариваясь с автором в т.ч. и, возможно, создавая этот АПИ совместно - если его ещё нет) а не грабить веб-странички.


------------------
WBR, Igor




Исправлено 1 раз(а). Последнее : Igor Korolyov, 18.02.18 21:34
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
shumik73
Автор

Сообщений: 513
Откуда: Алматы
Дата регистрации: 10.05.2006
Эврика!
Нашел - вся проблема в какой эмуляции идет IE11. По умолчанию стоит IE8 а этот сайт ссылается на новые методы, которые появились у IE11
Я нашел в старых своих записях:

Цитата:
В реестре находишь раздел:
32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION
64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Добавляешь свою программу - например

Имя - "luzi.exe"
Тип - "REG_DWORD"
Значение
в 16 системе - 2af9
в 10 системе - 1101

А для справки можно эмулировать под другие версии IE - msdn.microsoft.com

Договориться на счет API не получится - я как бы конкурент



Исправлено 2 раз(а). Последнее : shumik73, 18.02.18 21:40
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Сниферить, и сделать также. Все браузеры суть программки (надстройки) над обьектом xmlhttprequest, мтк

Кстати, чем эти 2 компа из 30 особенные?



Исправлено 1 раз(а). Последнее : of63, 18.02.18 22:44
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
shumik73
Автор

Сообщений: 513
Откуда: Алматы
Дата регистрации: 10.05.2006
of63
Кстати, чем эти 2 компа из 30 особенные?

На всех компьютерах стоит IE11 в самом этом браузере и всех аналогичных (Chrome, Mozila...) web-сайт www.iagent.kz работает,
но по умолчанию для WebBrowser Control настроена эмуляция как будто он отображает старая версия IE8.
Визуально это не определишь, пока не начнешь загружать web-сайты в WebBrowser Control.

Так как web-сайт www.iagent.kz при загрузке вызывает addEventListener() то IE8 не может выполнить скрипт,
поэтому стили все сползли как видно из скрина и кнопки вызова всплывающих диалогов не работают.
На этих двух компьютерах я ранее уже настраивал эмуляцию на IE11, поэтому на них все работало.

Для меня критично загружать именно WebBrowser Control, потому как я могу не только открыть web-cайт
но и управлять им : проходить регистрацию, загружать фото, получать ссылки на картинки и потом скачивать фото.
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> проходить регистрацию, загружать фото, получать ссылки на картинки и потом скачивать фото
это не просто "получить картинку капчи и послать в ответ ее расшифровку" ?

> На этих двух компьютерах я ранее уже настраивал эмуляцию на IE11, поэтому на них все работало.
Как это?



Исправлено 1 раз(а). Последнее : of63, 18.02.18 23:56
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
shumik73
Автор

Сообщений: 513
Откуда: Алматы
Дата регистрации: 10.05.2006
Скачивать картинки это одна задача,
а вот для обхода капчи можно воспользоваться сервисами:
rucaptcha.com
anti-captcha.com
xevil.net
meduza.io
Ratings: 0 negative/0 positive
Re: AddEventListener или почему WebBrowser отображает не все web-сайты?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я фотку-капчу не обошел. Я ее предьявляю опертору, и заставляю набирать в TextBox-поле... Бывают не просто картинки а квесты (типа собери пазл, ответь на человеческий вопрос), такие я не знаю как обойти без выполнения браузерного скрипта...

Доб. Попробуй подменить User-Agent. Тут пишут, как это делается в ОС (первый попавшийся сайт)
whoer.net



Исправлено 1 раз(а). Последнее : of63, 19.02.18 00:51
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика