给人讲快一年前的代码,图看看到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 }
光看代码半天没看懂 看了下自己写的注释 还好想起来了
OnBackKeyPress 系统物理键返回处理,里面处理是否应该执行页面跳转还是,web页面中的跳转
WebBrowerBackKey 实际处理页面跳转,此处使用js,这是要打开IsScriptEnabled 属性
webBrowser_Navigated webBrowser跳转事件监听,自己维护页面深度,如需做页面缓存,可以在此处维护一个页面的集合
backKey 用来判断页面在前进还是后退,控制堆栈的增减
一个很简单的 网页控制页面回退的处理