2011-06-14 40 views
0

我使用WPF webbrowser,基本上當我加載一個外部URL,我想過濾任何頁面加載,以確保該URL不包含發誓或色情類型的單詞。HowTo:WPF Webbrowser返回當前URL /篩選器色情

這很容易做到頁面加載,因爲我檢查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如果點擊了錯誤的鏈接,彈出窗口需要通知我們。我還需要顯示當前的URL地址欄

請幫助非常感謝

:)

+0

'我需要基本上停止任何壞內容',哈哈,祝你好運! – 2011-06-14 09:17:05

+1

這是一個代理工作,而不是WPF應用程序。 – 2011-06-14 09:25:27

回答

1

WebBrowser.Navigating事件(docs)和NavigatingCancelEventArgs檢查Uri。如果您不想允許導航,請設置e.Cancel = true

但您的有效Uri檢查是更復雜的問題。

+0

非常感謝,這是一個很大的幫助!使事情變得更容易管理! – 2011-06-15 08:17:01

0
private void webBrowser1_Navigating(object sender, NavigatingCancelEventArgs e) 
    { 
    string currentURl= e.Uri.ToString(); 
    _addrBox.Text = currentURl; 
 
    }

,這是在我的情況的解決方案。 也許它會幫助某人

+0

似乎根本不涉及這個問題。你可以編輯以顯示它是如何? – paisanco 2015-06-28 21:32:24

+0

除了色情部分:)對不起,我以爲我在我的問題上,想幫助其他人 – 2015-06-29 16:27:55