1

他のスレッドをチェックしましたが、機能していません。それらに続いて、私はこれまでこの方法を実装しました:

  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;
    }

キャンセルしたいサイトのURLは次のようなものです:警告詐欺のようなリンク http://cdn.adbooth.net/src/autoshortner.html?section=3605070&url=url_i_want_goes_here.com

4

1 に答える 1

0

私は2つのステップでパッチ/修正ソリューションを作成しました...少しハッキーです...

URLを確認し、リダイレクトされた場合は、次に取得するURLなどをアドブース文字列に対して確認します。(プログラムで短縮URLを長くする方法

次に、イベントのナビゲート時に(念のため)、ナビゲートする前に、可能な場合は、次のようにURLをトリミングします。

    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;
    }
于 2013-03-30T16:02:07.913 に答える