powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Новое окно в WebBrowser + хитрый html
1 сообщений из 1, страница 1 из 1
Новое окно в WebBrowser + хитрый html
    #32277710
slydiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два объекта WebBrowser, в первом загружаю следующий html:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<html><head>
<script language= "JavaScript" >
<! --
 
function OpenTest() {
  window.open( "open.htm" , "test" ,'toolbar=no,status=no,directories=no,menubar=no,resizable=no,scrollbars=no,height=180,width=330,left=400,top=100');
}
// -->
 
</script>
<title>New window test</title></head>
<body bgcolor= "#FFFFFF" >
<a href= "JavaScript:OpenTest()" >LINK</a> 
</body></html>


Файл open.htm может выглядеть как угодно, например так:

Код: plaintext
1.
2.
3.
4.
5.
<html>
<head><title>New Window</title></head>
<body bgcolor= "#FFFFFF"  text= "#000000 ">
TEST 
</body></html>


В первом WebBrowser перехватываю OnNewWindow2:

(извините за синтаксис C++, думаю в целом суть ясна)

Код: plaintext
1.
2.
3.
4.
5.
6.
void __fastcall TForm1::WebBrowser1NewWindow2(TObject *Sender, LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
{
  *Cancel = FALSE;
  IDispatch *Dispatch = NULL;
  WebBrowser2->DefaultDispatch->QueryInterface(IID_IDispatch, (void**)&Dispatch );
  *ppDisp = Dispatch;
}


При нажатии на ссылку в первом WebBrowser, во втором появляется серый фон и все куда-то пропадает.
Если в html в первом WebBrowser в команде window.open убрать параметры left=400,top=100, то при нажатии на ссылку во втором WebBrowser нормально загружается файл open.htm

Как-нибудь можно проконтролировать/отключить left и top в данной ситуации не меняя html?

Предполагаю что копать нужно в направлении:

Код: plaintext
1.
2.
3.
4.
5.
    IHTMLDocument2 *pHTMLDocument2 = NULL;
    WebBrowser2->Document->QueryInterface( IID_IHTMLDocument2, (void **)&pHTMLDocument2 );
    if( pHTMLDocument2 ){
      IHTMLWindow2 *pHTMLWindow2;
      pHTMLDocument2->get_parentWindow(&pHTMLWindow2);
      pHTMLWindow2 ... left =  0 ;

но пока ничего конкретного найти не удалось :(
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Новое окно в WebBrowser + хитрый html
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]