1

我目前正在为我的大学开发一个适用于 WP7 的应用程序,并且需要一个临时解决方案来解决问题。现在这个解决方案是,我将使用 WP7 的 Web 浏览器控件加载网页。例如: http: //m.iastate.edu/laundry/

现在,正如您在网页上看到的那样,我想隐藏某些元素,例如后退按钮。现在,我为处理后退按钮所做的事情是这样的:

private void webBrowser1_Navigating(object sender, NavigatingEventArgs e)
{
    // Handle loading animations

    // Handle what happens when the "back" button is pressed
    Uri home = new Uri("http://m.iastate.edu/");

    // The the current loading address is home
    // Cancel the navigation, and go back to the 
    // apps home page.
    if (e.Uri.Equals(home))
    {
        e.Cancel = true;
        NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
    }

}

现在效果很好,除了硬件上有一个后退按钮的部分。

所以我的第二个选择是只在该页面上完全隐藏后退按钮,而不是它的子页面。所以不在http://m.iastate.edu/laundry/l/0 _

我仍在争论是否只解析数据并以我自己的风格显示它,但我不确定这是否完全需要查看数据如何需要持续的互联网服务并且已经采用了良好的格式。另外,我觉得这样会浪费资源吗?对此也发表您的看法:)

谢谢!

4

1 回答 1

2

您应该在页面中注入一个带有InvokeScript.

这是删除后退按钮所需的 Javascript 代码:

// get the first child element of the header
var backButton = document.getElementsByTagName("header")[0].firstChild;

// check if it looks like a back button
if(backButton && backButton.innerText == "Back") {
  // it looks like a back button, remove it
  document.getElementsByTagName("header")[0].removeChild[backButton];
}

使用 InvokeScript 调用此脚本:

webBrowser1.InvokeScript("eval", "(function() { "+ script +"}()");

警告:IsScriptEnabled必须true在 web 控件上设置

如果后退按钮的删除取决于页面,只需在 C# 中测试导航 URI 并在需要时注入脚本。

于 2012-07-25T07:15:26.873 回答