在webbrowser c#control中停止警告javascript弹出窗口

rob*_*ert 5 javascript c# browser alert

本网站:http: //blog.joins.com/media/folderListSlide.asp?uid = ddatk&folder = 3&list_id = 9960150

有这个代码:

<script>alert('¿Ã¹Ù¸¥ Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù.');</script>
Run Code Online (Sandbox Code Playgroud)

所以我的网页浏览器控件显示弹出窗口,如何在不使用sendkeys输入的情况下绕过弹出窗口?

And*_*rew 5

如果您不打算alert()在您的页面上使用该功能,您也可以覆盖它。例如:

<script type="text/javascript">
alert = function(){}
</script>
Run Code Online (Sandbox Code Playgroud)

如果您确实需要使用 JavaScript 的警报功能,您可以“重载”它:

<script type="text/javascript">
var fnAlert = alert;
alert = function(message,doshow) {
    if (doshow === true) {
        fnAlert(message);
    }
}
alert("You won't see this");
alert("You will see this",true);
</script>
Run Code Online (Sandbox Code Playgroud)


luv*_*ere 5

ProgressChanged事件处理程序中,您插入一个脚本元素,该元素用alert您自己的函数替换Javascript 函数,它不执行任何操作:

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
    {
        if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
        {
            HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            string alertBlocker = "window.alert = function () { }";
            element.text = alertBlocker;
            head.AppendChild(scriptEl);
        }
    }
Run Code Online (Sandbox Code Playgroud)

对于这个工作,你需要添加一个引用Microsoft.mshtml,并use mshtml;在您的形式.


Che*_*hen 1

我认为您正在WinForm 应用程序中alert(xxx)使用 javascript 来导航页面?WebBroswer你可以试试:

broswer.Navigated += (sender, args) =>
  {
     var document = (sender as WebBrowser).DocumentText;
     //find the alert scripts and remove/replace them
  }
Run Code Online (Sandbox Code Playgroud)