C#防止WebBrowser在新窗口中打開鏈接頁面


在日常的開發中,大家有時需要用WebBrowser加載URL,來實現某些功能。而這時,我們就不希望所打開的頁面中的鏈接,在新窗口中打開,因為這樣的話,實際上是用系統默認的瀏覽器打開了,從而脫離了你的WebBrowser,也就不能被你所控制了。

要解決這個問題,可以使用下面的方法:

假設WebBrowser的Name是 webBrowser1

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    //將所有的鏈接的目標,指向本窗體
    foreach (HtmlElement archor in this.webBrowser1.Document.Links)
    {
        archor.SetAttribute("target", "_self");
    }

    //將所有的FORM的提交目標,指向本窗體
    foreach (HtmlElement form in this.webBrowser1.Document.Forms)
    {
        form.SetAttribute("target", "_self");
    }
}
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
     e.Cancel = true;
}
 
記得將 WebBrowser 的 AllowWebBrowserDrop 設為 false
將 WebBrowser 的 WebBrowserShortcutsEnabled 設為 false
將 WebBrowser 的 IsWebBrowserContextMenuEnabled 設為 false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM