首页 > Web开发 > 详细

cefsharp重写默认js弹窗(alert/confirm/prompt)

时间:2014-08-19 18:22:05      阅读:1298      评论:0      收藏:0      [点我收藏+]

 1.设置js弹窗控制器

webView.JsDialogHandler = this;  //js弹窗控制

 

2.实现接口方法

   public bool OnJSAlert(IWebBrowser browser, string url, string message)
        {
            MessageBox.Show(message);
            return true; //阻止js弹
        }

        public unsafe bool OnJSConfirm(IWebBrowser browser, string url, string message, bool* retval)
        {
            DialogResult result = MessageBox.Show(message, "提示", MessageBoxButtons.YesNo);
            bool value = result == DialogResult.Yes ? true : false;
            //   retval = (bool *)GCHandle.Alloc(value).AddrOfPinnedObject().ToPointer(); //获取托管内存地址,异常
            // retval = &value; //改变指针失败
            *retval = value;
            return true;
        }

        public unsafe bool OnJSPrompt(IWebBrowser browser, string url, string message, string defaultValue, bool* retval, ref string result)
        {
            //交互消息
            string r = string.Empty;
            this.Invoke(new Action(() =>
            {
                r = Microsoft.VisualBasic.Interaction.InputBox(message, "提示", defaultValue);
            }));
            result = r;

            if (result == defaultValue)
            {
                *retval = false;
            }
            else
            {
                *retval = true;
            }
            return true;
        }

 

cefsharp重写默认js弹窗(alert/confirm/prompt),布布扣,bubuko.com

cefsharp重写默认js弹窗(alert/confirm/prompt)

原文:http://www.cnblogs.com/hdwang/p/3922353.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!