HowtoHandleWebBrowserBackandBackNavigationinWp7Application我在WindowsPhone7应用程序中使用Web浏览器。我只是想知道如何像任何桌面浏览器一样处理它的后退和前进导航。以及如何阻止特定导航。我在这里和其他许多地方都提到过,但找不到对我有用的东西。请帮忙。要使其像桌面浏览器一样工作,您可以实现堆栈。您将前后放置两个按钮。当用户导航到浏览器中的下一个URL时,您将它们推送到历史堆栈中,当他想通过按后退按钮返回时,您以编程方式导航到历史堆栈中的第一个URL并将其从历史堆栈中删除堆栈被弹出,以便他可以返回导航,直到堆栈中有一些URL。类似地,对于forwards你在向后导航时将url压入forward堆栈,每当他按下forward按钮时,你导航到forward堆栈中的第一个元素并弹出它,依此类推,直到你将URL保留在forward堆栈中.一旦他导航到您未从前向堆栈导航的某个url,您清空前向堆栈并在他向后移动时再次填充它。通过这种方式,您甚至可以在列表或任何您喜欢的内容中显示历史url。关于导航取消,这是您问题评论中问题中链接的代码,它应该可以工作。privatevoidwebBrowser1_Navigating(objectsender,WebBrowserNavigatingEventArgse){//取消导航e.Cancel=true;您可以通过处理OnNavigating事件来取消导航privatevoidwebBrowser1_Navigating(objectsender,WebBrowserNavigatingEventArgse){//cancelCnavigation=.真的;}要返回,您可以在页面上执行javascript。webBrowser.InvokeScript("eval","history.go(-1)");继续:webBrowser.InvokeScript("eval","history.go(1)");如果eval在页面上被阻止,那么这个网站可能对替代品有用。不要忘记将webBrowser.IsScriptEnabled设置为true。前面的答案有效,但您可以使有效的解决方案更简单,因为WebBrowser控件具有内部导航堆栈。向UI添加前进和后退按钮控件。在每个人的动作例程中:privatevoidforwardButton_Click(objectsender,System.Windows.RoutedEventArgse){WebBrowsereditWB=senderasWebBrowser;如果(editWB!=null&&editWB.CanGoForward)editWB.GoForward();您可以做得更好:在WebBrowser.LoadComplete事件(不是FrameworkElement.Loaded事件)中,您可以测试.CanGoForward和.CanGoBack并有选择地启用或禁用按钮。我正在尝试实现BobHy提出的想法,但它在我的WP7/VS2010Express中失败了我没有找到WebBrowser的CanGoForward方法。我在可能会影响体验的用户控件的画布中使用它。但是,我在http://developer.nokia.com/community/wiki/WebBrowser_Control_Techniques_in_Windows_Phone上找到了一个直接详细的示例,该示例实现了Parveen建议的堆栈,这对我很有用。以上就是C#学习教程:Wp7应用中如何处理Web浏览器前后导航共享的所有内容。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
