【问题标题】:Wpf webbrowser disable external linksWpf webbrowser 禁用外部链接
【发布时间】:2016-01-23 08:08:29
【问题描述】:

我正在开发一个 Wpf 应用程序。它包含一个网络浏览器,用户在其中通过 Facebook 进行身份验证。问题是用户能够点击链接(例如:忘记密码?)标准浏览器然后打开......我想要做的是禁用/阻止所有外部链接。因此用户只能通过网络浏览器控件进行身份验证而不能导航。我希望你们能帮助我。

更新 1 就像建议的那样,我可以检查网络浏览器的来源。所以我可以允许想要的页面。但问题是链接。他们在 IE 上打开。我不想打开它们,但要完全阻止它们 Description image

 private void webBrowserFacebook_Navigating_1(object sender, NavigatingCancelEventArgs e)
    {

       string huidigeLink = Convert.ToString(webBrowserFacebook.Source);
        MessageBox.Show(huidigeLink);

        // check for allowed pages
    }

更新 2 我找到了解决方案:http://social.technet.microsoft.com/wiki/contents/articles/22943.preventing-external-links-from-opening-in-new-window-in-wpf-web-browser.aspx

非常简单的解释......谢谢你们的帮助!

【问题讨论】:

  • 您可以将此限制放在 WebBrowser onNavigationStarted 事件侦听器上。将此侦听器添加到您的浏览器,无论何时启动任何导航,您都可以访问事件侦听器参数中的 URL。如果与允许的 URL 匹配,则继续,否则返回 false。或停止导航。
  • msdn.microsoft.com/en-in/library/… 事件监听器在这里提供帮助

标签: wpf facebook


【解决方案1】:
void Window1_Loaded(object sender, RoutedEventArgs e)
{
    browser = new WebBrowser();
    browser.Navigate(new Uri("http://www.google.com"));
    browser.Navigating += new NavigatingCancelEventHandler(browser_Navigating);
    browser.Navigated += new NavigatedEventHandler(browser_Navigated);
}

void browser_Navigating(object sender, NavigatingCancelEventArgs e)
{
    //Your checks should happen here..
    Console.WriteLine("Loading Webpage !!");
}

void browser_Navigated(object sender, NavigationEventArgs e)
{
    Console.WriteLine("Webpage Loaded !!");
}

您可以注册 WebBrowser.Navigating 事件。 导航事件处理程序被传递NavigatingCancelEventArgs 类的实例。您可以通过将NavigatingCancelEventArgs 对象的Cancel 属性设置为true 来取消导航。

或者,如果 URL 导航不匹配,您可以调用脚本或浏览器实例来停止加载。

yourWebBrowser.InvokeScript("eval", "document.execCommand('Stop');");

【讨论】:

  • 哇太棒了。我会试一试。我让你们知道。谢谢!
  • 现在我无法测试它。周一上班。但我会在更新时更新帖子
  • 抱歉反应迟了。我确实尝试过,并且能够进行检查以验证页面。但问题仍然存在。例如,在 Facebook 登录页面中是一个链接(忘记密码?),如果用户单击这些链接,则该页面将在 Internet Explorer 的新页面上打开,而不是在 webbrowser 用户控制范围内。有什么想法吗?
猜你喜欢
  • 2017-09-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-13
  • 2014-12-23
  • 2014-06-22
  • 1970-01-01
相关资源
最近更新 更多