除非我完全失明,否则在Windows Phone 7上的WebBrowser类中实现了appear to be no方法,以便在浏览器中向后和向前浏览页面,也不刷新现有页面?
我在这个假设中是对的吗?这可以通过另一种方式实现吗?
我尝试使用“javascript:history.go(-1)”作为URI并要求WebBrowser对象导航到它,但是没有做任何事情。
答案 0 :(得分:1)
你是对的,WebBrowser没有后退/前进/刷新方法。你需要将InvokeScript调成javascript并从那里开始。 InvokeScript最适合您在页面上定义的预定义javascript函数。有时您可以执行以下操作:webBrowser.InvokeScript(“eval”,“history.go(-1)”)。但是,并不总能保证工作,因为如果页面没有标签或eval已被其他脚本覆盖,则eval将不起作用。
答案 1 :(得分:1)
通过观察Navigated
和Navigating
事件并管理您自己的后退/前进堆栈几乎可以实现后退/前进但不幸的是,如果您点击重定向,则没有任何指示事件数据。
刷新很简单,只需存储在实例变量中访问的最后一个URL并调用WebBrowser.Navigate(lastUrl)
。我建议在Navigating
开头禁用按钮(或将其更改为“停止”),并在Navigated
答案 2 :(得分:1)
这里有一个很好的例子: http://franciscojf.wordpress.com/2011/03/27/full-web-browser-control-for-windows-phone-7/
答案 3 :(得分:0)
它有来自其父类的Navigate方法,那些没有你需要的东西?否则你可以使用NavigationService进行导航回来吗?
或者您只是尝试从浏览器内部的javascript中导航浏览器?
答案 4 :(得分:-2)
OnNavigatedTo是解决方案,您必须覆盖它,以便每当您的页面被“导航”时,它就会触发事件。