给人讲快一年前的代码,突然看到一段,忘了为什么这么实现的,自己看了下注释才想起来

 给人讲快一年前的代码,图看看到web页面的回退处理。。。一愣神 忘了怎么处理页面深度的了   看来有注释还是很有用的

 1 void webBrowser_Navigated(object sender, NavigationEventArgs e)
 2         {
 3             if (backKey == false)
 4             {
 5                 pageStackCount += 1;
 6             }
 7             else
 8             {
 9                 backKey = false;
10             } 
11         }
12 
13         protected override void OnBackKeyPress(CancelEventArgs e)
14         {
15             if (pageStackCount > 1)
16             {
17                 e.Cancel = true;
18                 WebBrowerBackKey();
19             }
20             else
21             {
22                 base.OnBackKeyPress(e);
23             }
24         }
25 
26         public void WebBrowerBackKey()
27         {
28             backKey = true;
29             pageStackCount -= 1;
30 
31             webBrowser.InvokeScript("eval", "history.go(-1)");
32         }
View Code

 光看代码半天没看懂  看了下自己写的注释 还好想起来了

OnBackKeyPress  系统物理键返回处理,里面处理是否应该执行页面跳转还是,web页面中的跳转

WebBrowerBackKey  实际处理页面跳转,此处使用js,这是要打开IsScriptEnabled 属性

webBrowser_Navigated  webBrowser跳转事件监听,自己维护页面深度,如需做页面缓存,可以在此处维护一个页面的集合

backKey 用来判断页面在前进还是后退,控制堆栈的增减

一个很简单的 网页控制页面回退的处理

原文地址:https://www.cnblogs.com/liumianweifeng/p/3640184.html