Delphi TWebBrowser.GoBack:如何处理重定向

时间:2016-01-30 16:51:00

标签: delphi twebbrowser

关于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/

我该怎么做?

3 个答案:

答案 0 :(得分:1)

检查twebbrowser.onbeforenavigate2事件。在浏览器加载新资源之前调用它。您可以使用它来取消或重定向请求。

答案 1 :(得分:0)

将一些代码添加到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;

答案 2 :(得分:0)

TWebbrowser.OnBeforeNavigate2不适用于服务器端重定向!