Можно ли заставить веб-браузер вместо открытия в новом окне заменить текущее открытое окно?

Итак, у меня есть ссылка, по которой я пытаюсь щелкнуть элемент управления WebBrowser. Проблема в том, что он появляется на новой вкладке, открывая IE. Я не могу управлять веб-страницами после того, как они открываются в IE, поэтому мне нужно заставить их каким-то образом оставаться в моей программе. Неважно, нужно ли открывать другой элемент управления WebBrowser или что-то еще, пока это указано в моей программе.


person Jon    schedule 30.08.2012    source источник


Ответы (1)


есть несколько способов сделать это, один из них — просмотреть DOM (объектную модель документа) и найти ссылку, которая открывается в новом окне, и изменить значение атрибута «target =» на «target = _top». так, как он будет открываться на текущей странице верхнего уровня вашего текущего контейнера WB Control.

В противном случае существует событие NewWindow2, которое вы можете перехватить, напишите следующий код внутри этого события (где WB1 — это ваше имя элемента управления WebBrowser):

Processed = True
WB1.Navigate2 URL

Это сообщит вашему WB Control, что запрос был обработан (заставив его поверить в то, что он был обработан), и если вы просто сделаете это, ничего не произойдет, поэтому после первой строки вы пишете вторую строку, которая сообщает ему открыть URL-адрес, который он только что пытался открыть в новом окне, в текущем окне (WB1), так что на самом деле вы просто повторно отправляете запрос, но для того же контейнера / элемента управления WB, где была нажата ссылка.

Я писал код на VB, но уверен, что разобраться и перевести на c# не составит труда.

Дайте мне знать, как вы ладите, и если есть что-то еще, что я могу сделать, чтобы помочь.

person Erx_VB.NExT.Coder    schedule 01.09.2012