Възможно ли е да принудите уеббраузър вместо да отваря в нов прозорец, да замени текущо отворения прозорец?

Така че имам връзка, която се опитвам да щракна върху контрола на уеб браузър. Проблемът е, че изскача в нов раздел, отваряйки IE. Не мога да управлявам уеб страниците, след като се отвори в IE, така че трябва да го принудя по някакъв начин да остане в моята програма. Няма значение дали друга контрола на WebBrowser трябва да се отвори или нещо подобно, стига да пише в моята програма.


person Jon    schedule 30.08.2012    source източник
comment


Отговори (1)


има няколко начина, по които можете да направите това, един от начините е да преминете през DOM (Document Object Model) и да намерите връзката, която се отваря в нов прозорец, и да промените нейната стойност на атрибута "target=" на "target=_top" това начина, по който ще се отвори в текущата страница от най-високо ниво на текущия ви WB Control контейнер.

В противен случай има събитие NewWindow2, което можете да прихванете, напишете следния код вътре в това събитие (където WB1 е вашето име на контролите на уеб браузъра):

Processed = True
WB1.Navigate2 URL

Това ще каже на вашия WB Control, че заявката е обработена (подвеждайки го да повярва, че е обработена) и ако просто направите това, нищо няма да се случи, така че след първия ред пишете втория ред, който му казва да отвори URL адресът, който току-що се опита да отвори в новия прозорец, в текущия прозорец (WB1), така че наистина просто преиздавате заявката, но за същия контейнер/WB Control, където е щракнато върху връзката.

Написах кода на VB, но съм сигурен, че не е проблем да се разбере и прехвърли на c#.

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

person Erx_VB.NExT.Coder    schedule 01.09.2012