我已经检查了其他线程,但不适合我。 在他们之后,到目前为止我已经实现了这种方式:
private void InjectAlertBlocker()
{
HtmlElement head = webBrowser4.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser4.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
string alertBlocker = "window.showModalDialog = function () { };";
alertBlocker += "window.alert = function () { };";
alertBlocker += "getUrlParam(strParamName){};";
alertBlocker += "getSpecialUrlsParam(strParamName) {};";
alertBlocker += "closeButton();";
element.text = alertBlocker;
head.AppendChild(scriptEl);
}
从导航和已完成的事件中调用InjectAlertBlocker()。
我也试过了:
private void webBrowser_NewWindow(object sender, CancelEventArgs e)
{
WebBrowser wb = sender as WebBrowser;
if (wb != null)
añadeTextoDebug("Un navegador quiso abrir un popup: " + wb.Url);
e.Cancel = true;
}
我要取消的网站网址如下: 警告类似SCAM的链接 http://cdn.adbooth.net/src/autoshortner.html?section=3605070&url=url_i_want_goes_here.com
答案 0 :(得分:0)
我已经分两步制作补丁/修复解决方案...有点hacky ......
检查网址,以及是否重定向,我们获取的下一个网址,以及adbooth字符串等等。 (How to programatically lengthen shortened urls)
然后在导航事件(只是为了确定)和导航之前,在我可以的情况下,我修剪网址如下:
private string noAdBooth(string lnk)
{
if (lnk.Contains("&url=") && lnk.Contains("adbooth"))
{
añadeTextoDebug("adbooth omitted"); //add txt debug
lnk = lnk.Substring(lnk.IndexOf("&url=") + 5);
}
return lnk;
}