. NET Всплывающее окно управления WebBrowser не открывается в элементе управления. - PullRequest
0 голосов
/ 04 марта 2020

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

Если я разрешаю ему всплывающее окно через элемент управления, он, конечно, просто открывает новое окно IE и не сохраняет сеанс. Я попытался вручную перейти к ссылке, а также пытался обработать ее с помощью события Microsoft Inte rnet Controls NewWindow и перенаправления, как предлагается в этом сообщении: Элемент управления всплывающего окна всплывающего окна

Если я попытка передать TargetFrameName, PostData, Headers и т. д. c - я получаю следующую ошибку: Ошибка HRESULT E_FAIL была возвращена после вызова компонента COM.

Как бы я ни открывал окно, Во всплывающем веб-приложении появится сообщение: «Просматриваемая веб-страница пытается закрыть окно». Даже если я нажму «Нет» в этом всплывающем окне, сайт все равно закроется.

Любые идеи о том, как я мог бы отключить javascript, вызывающий закрытие окна, или альтернативные методы обработки всплывающего окна?

Спасибо!

1 Ответ

1 голос
/ 05 марта 2020

Если вы используете следующий интерфейс:

SHDocVw.WebBrowser

Вы можете присоединиться к событию с именем:

NewWindow2

Когда вы формируете нагрузки, просто объявите следующую переменную и добавьте событие:

убедитесь, что у вас есть форма с элементом управления браузером.

вы сможете найти ссылку на интерфейс в следующей сборке: Interop.SHDocVw

SHDocVw.WebBrowser nativeBrowser = webBrowser1.ActiveXInstance;
nativeBrowser.NewWindow2 += (ref object ppDisp, ref bool Cancel) => 
{ 
    var frm = new frmWithBrowser();
    frm.Show(this);
    ppDisp = frm.webBrowser1.ActiveXInstance;
}
...