Ошибки в WebBrowser C#

Все привет! Если вы, как и я приверженцы стандартных контролов framework. И при загрузке сайта возникаю ошибки сценария «На этой странице произошла ошибка сценария. Объект не поддерживает свойство или метод. Вы хотите продолжить выполнения сценария на этой странице?»:

Обычно таких окон всплывает огромное множество, и остановить их нажатием на кнопку Да или Нет ничего не выйдет. Да в конце будет загружен сайт, но выглядеть он будет криво, в прямом смысле этого слова.

Можно попробовать воспользоваться свойством:

После установки свойства значения true окон об ошибках больше мы не увидим, но это не означает что они пропали. Сайт по-прежнему будет выглядеть криво, а часть скриптов на Java Script просто не работает.

Мы даже можем увидеть следующую информацию, к примеру при заходе на сайт вкнонтакте.

Проблема кроется в том, что все современные сайт отказались от поддержки Internet Explorer.

А вот теперь зная проблему, мы можем ее решить, есть два варианта, если мы имеем доступ к сайту к изменению его html разметки, то нам достаточно добавить следующие строчки кода:

Данный мета тег говорит о том, как загружать страницу, а точнее какой браузер использовать по умолчанию для контента, и как мы видим это Edge. Хочу заранее сказать, что такие теги по умолчанию вставлены во все поисковые системы, или аналоги их, потому при загрузке не возникает не каких JS ошибок.

Но что делать если мы хотим использовать сайт, к которому не имеем доступа для изменений html разметки? 

Ничего сложного, просто надо внести изменения в реестре, я даже не знаю почему этого не сделали по умолчанию в windows 10 для всех приложений, видимо это не возможно, поэтому вначале сделаем вручную, а потом покажу как это сделать программно.

Пример покажу под Windows 10 64  так как не могу протестировать для 32 бит версии или других OS. Но по сути ничего не меняется за исключением ветки для 32 и 64 версии.

Вам нужно будет указать имя своего приложения, создать параметр Dword и десятичное значения устанавливаем в 11001.

Вроде как проблема и решена от части, так как webBrowser по умолчанию использует Internet Explorer, и изменить мы это не можем, но что нам говорит MS, а говорит нам о том, что мы можем эмулировать работу Edge, то есть мы будем с функциями Edge использовать Internet Explorer. Нам будут доступны для полноценной работы все теги html и JS. Но, к сожалению, мы так же не сможем зайти на многие сайты, так как они принудительно отключили поддержку Internet Explorer, и сделать уже с этим нечего, возможно MS когда ни будь добавят Edge в webBrowser, хотя уже прошло 10 лет, но ничего не изменилось. И для решения приходится использовать сторонние браузеры.

Как и обещал привожу пример автоматического добавления в реестр значений, в соответствии с вашей системой.

 

Обновлено: 22.01.2022 — 22:07

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.