Delphi TWebBrowser.GoBack: как обрабатывать перенаправления

У меня проблема с TWebBrowser в отношении метода GoBack. Ниже приведена история навигации, которая показывает проблему:

[1] htt#://www.google.com/
[2] htt#://news.google.com/nwshp?hl=en&tab=wn
[3] htt#://news.google.com/news/url?sr=1&ct2=us%2F0_0_s_3_1_a&sa=t&usg=AFQjCNGgo-FdxdVP4AVI_HZEV7gS66cjDA&cid=43982236066804&url=http%3A%2F%2Fnews.cnet.com%2F8301-10805_3-57613303-75%2Fmicrosoft-provides-doctors-note-for-sick-xbox-one-gamers%2F&ei=ORaOUvjjJciMgQeGwAE&rt=HOMEPAGE&vm=STANDARD&bvm=section&did=2559730436932654466&ssid=tc
[4] htt#://news.cnet.com/8301-10805_3-57613303-75/microsoft-provides-doctors-note-for-sick-xbox-one-gamers/

Достигнув #4, я выполняю процедуру GoBack. Это когда возникает проблема. GoBack удаляет [4] из списка истории и переходит к [3], который, к сожалению, перезагружает [4], что эффективно отменяет запрос GoBack.

Я бы хотел, чтобы [3] инициировал [4], но не позволял себе оставаться в стеке, чтобы стек выглядел так:

[1] htt#://www.google.com/
[2] htt#://news.google.com/nwshp?hl=en&tab=wn
[3] htt#://news.cnet.com/8301-10805_3-57613303-75/microsoft-provides-doctors-note-for-sick-xbox-one-gamers/

Как я могу это сделать?


person instrumentally    schedule 30.01.2016    source источник
comment
Для twebbrowser.onbeforenavigate2 вы можете установить Cancel:=false; - прервать текущую навигацию .` if (pos('news.google.com/news/url',url)›0) then begin Cancel:=false; вернуться + 1 конец . Пожалуйста, проголосуйте, если поможете мой ответ? буду рад :)   -  person Michael    schedule 31.01.2016


Ответы (3)


проверьте событие twebbrowser.onbeforenavigate2. он вызывается до того, как браузер загрузит новый ресурс. вы можете использовать его для отмены или перенаправления запроса.

person lumos0815    schedule 31.01.2016

Поместите некоторый код в событие twebbrowser.onbeforenavigate2 или state change или другое, чтобы увидеть все, что каждый менинг

 if (pos('news.google.com/news/url',url)>0) then 
begin 
Cancel:=false; //see it abort curent navigation
//go back +1 pages
end;
person Michael    schedule 31.01.2016

TWebbrowser.OnBeforeNavigate2 не работает для переадресации на стороне сервера!

person R. Hoek    schedule 07.08.2018