[C#]取消WebBrowser開啟新視窗瀏覽

[C#]取消WebBrowser開啟新視窗瀏覽

在使用WebBrowser瀏覽網頁時,有時會WebBrowser會帶出新的視窗,若這個動作不是我們所預期的,我們可以透過繫結WebBrowser.NewWindow事件去處理,在繫上的事件處理函式中使用e.Cancel = true將開新視窗的動作給取消。若有需要也可透過this.Document.ActiveElement.GetAttribute("href")去取出新視窗所要瀏覽的網址。像是下面這樣:

...

void WebBrowser1_NewWindow(object sender, System.ComponentModel.CancelEventArgs e)
{
    e.Cancel = true;
    var newUrl = this.Document.ActiveElement.GetAttribute("href");
    (sender as WebBrowser).Navigate(newUrl);
}

...