我正在使用WPF网络浏览器,基本上,当我加载外部URL时,我想过滤所有加载的页面,以确保该URL不包含脏话或色情字词。
这很容易在页面加载时完成,因为我对照我的List badwords检查了URL;我还设置了一个“加载完成”方法,该方法可以使我获得被单击单词的网址,但是这不能正常工作
void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e) { mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)this.webBrowser1.Document; foreach (IHTMLElement link in doc.links) { HTMLAnchorElement anchor = link as HTMLAnchorElement; if (anchor != null) { HTMLAnchorEvents_Event handler = anchor as HTMLAnchorEvents_Event; if (handler != null) { handler.onclick += new HTMLAnchorEvents_onclickEventHandler(delegate() { uxURLText.Text = anchor.href; //if (HelperClass.isNotFile(anchor.href)) // { if (basepage.nonSafeWords.WordsContainSwearWord(anchor.href)) { System.Windows.MessageBox.Show(basepage.INTERNET_RESTRICTION_NOTICE); } else { System.Windows.MessageBox.Show("Word Ok"); } return true; }); } } } }
如果单击了错误的链接,则需要从弹出窗口通知我们,基本上我必须停止从链接,按钮或ajax窗口中加载任何错误的内容。我还需要在地址栏中显示当前网址
请帮助,非常感谢
:)
我正在使用WPF网络浏览器,基本上,当我加载外部URL时,我想过滤所有加载的页面,以确保该URL不包含脏话或色情字词。这很容易做到...
收听WebBrowser.Navigating
事件(docs),并检查Uri
中的NavigatingCancelEventArgs
。如果您不想允许导航,则设置e.Cancel = true
。
private void webBrowser1_Navigating(object sender, NavigatingCancelEventArgs e)
{
string currentURl= e.Uri.ToString();
_addrBox.Text = currentURl;