关于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/
我该怎么做?
答案 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
不适用于服务器端重定向!