powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Twebbrowser: Вы действительно хотите покинуть эту страницу ?
10 сообщений из 10, страница 1 из 1
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742043
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда при серфинге в Twebbrowser вылазит это окно . Как его программно подтвердить ?
инъекция JS скрипта помогает в 99,5% случаев .. но иногда окно таки всплывает ..
после этого программа замирает , пока не нажмешь руками на кнопку .
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
function ExJS(var wb: TWebBrowser; jStr: string): string;
var
  Doc: IHTMLDocument2;
  HTMLWindow: IHTMLWindow2;

begin
  try
    begin
      wb.Document.QueryInterface(IHTMLDocument2, Doc);
      HTMLWindow := Doc.parentWindow;

      HTMLWindow.execScript(jStr, 'JavaScript');
      result := (wb.Document as IHTMLDocument2).body.innerHTML;
    end;
  except
    on e: Exception do
       log(0,0,'ERR','ExJS:'+e.Message);
  end;

end;

//webBrowser1DocumentComplete
ExJS(w, '  setInterval(function(){window.onbeforeunload = null;},5); ');

//webBrowser1DownloadBegin   
ExJS(w, '  setInterval(function(){window.onbeforeunload = null;},5); ');
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742047
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebBrowser1.Silent := True;
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742050
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

установлено . это не простое диалоговое окно , оно типа системное , или хз как его назвать
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742078
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TREY,

надо возвращать null :

Код: javascript
1.
2.
3.
window.onbeforeunload = function () { 
  return null; 
}
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742081
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,

я так и делаю , пример кода под катом
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742100
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TREYJaDi,

я так и делаю , пример кода под катом

return null где? Ты сбрасываешь обработчик OnBeforeUnload через 5 сек. Собственно функция что вернет?
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742107
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote DarkMaster]TREYJaDi,

я так и делаю , пример кода под катом

return null где? Ты сбрасываешь обработчик OnBeforeUnload через 5 сек. Собственно функция что вернет?pfxtv vyt зачем мне выводить 'null' перед загрузкой ?
если мне нужно ничего не выводить
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742121
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TREY,

Что-то мне кажется, что ты натыкаешься на один из подводных камней.

https://javascript.info/settimeout-setinterval

И да setInterval() не гарантирует исполнения в нужные сроки - setTimeout() лучше.
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742123
TREY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster,

по нормальному там одного раза достаточно .. я завернул в таймер после того как оно не всегда срабатывало , но это тоже не помогло .. по этому ищу способ просто забить на js и кликать на кнопку при появлении .. или запретить окно в принципе ..
...
Рейтинг: 0 / 0
Twebbrowser: Вы действительно хотите покинуть эту страницу ?
    #39742126
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TREY,

Если идти твоим путем - попробуй погасить еще OnNavigate() / OnNavigating() event`ы. Если F12 нажать и посмотреть на EventListeners - там видно, что навешено на страницу.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Twebbrowser: Вы действительно хотите покинуть эту страницу ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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