一、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