C#——控件webbrowser系列问题

一、webbrower之该文档已被修改,是否保存修改结果

需求:最近在系统开发中用到了一个html editor,其中引入了Web Brower控件,但每次在改变其值时都会弹出一个对话框,提示内容已经改变,是否保存;

解决: 

   private void webBrowserBody_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            try
            {   //C# WebBrower1控件可编辑模式保存时会提示“该文档已被修改,是否保存修改结果”  加上这句
                //关于NullReferenceException   用try...catch  good
                webBrowser1.Document.Write("<script>functionshowModalDialog{return;}</script>");
            }
            catch
            {

            }

        }

二、指定Webbrowser控件所使用IE内核版本

虽然电脑上安装了IE8或者更高版本的IE浏览器,但Webbrowser控件默认总是使用IE7内核兼容模式来显示网页内容,导致很多网页样式无法正常显示,例如IE7不兼容HTML5,解决方法是在注册表中为你的进程指定引用IE的版本号。

比如我的程序叫做a.exe

对于32位程序:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

对于64位程序:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

在对应的路径下添加你程序名字,如a.exe为名的value,DWORD值。

值选项:
11000(0×2af8)    IE11
10000(0×2710)    IE10
9999 (0x270F)     IE9 忽略html5
9000 (0×2328)    IE9
8888 (0x22B8)     IE8 忽略html5
8000 (0x1F40)     IE8
7000 (0x1B58)     IE7

发布了177 篇原创文章 · 获赞 31 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_36963950/article/details/103385393