写了一个C#程序,里面用到了webbrowser控件,但是webbrowser是兼容IE7来显示页面的,导致了许多元素不能正常显示。如何在注册表中指定webbrowser的ie版本呢。。百度上的方法已经试过,没有什么效果。很急,在线等。

解决方案 »

  1.   

    ”指定webbrowser的ie版本“有根据吗?
      

  2.   

    指定不了....别想了..我发现论坛好几个关于webbrowser是不是都你发的帖子?
      

  3.   

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    这样?
      

  4.   

    我不知道“但是webbrowser是兼容IE7来显示页面的”是否属实,我没有测试。(其实你应该测试一下,贴出来)既然你说“百度上的方法已经试过,没有什么效果”,那么可能还是要基于上面的测试来分析。可惜我是不测试这个的。我使用 geckofx。你可以在这里找到它:https://bitbucket.org/geckofx/geckofx/但是它显然跟 webbrowser 是不同的东西,编程方式不一样。你要有这个准备。
      

  5.   

    如果你要使用开源的 Geckofx,那么在你的 vs 上用 Nuget 安装它,非常方便。
      

  6.   

    你可以使用基于chrome内核的第三方控件试下。
    webbrowser就是个坑。
      

  7.   

    void Button1Click(object sender, EventArgs e)
    {
    RegistryKey rk = Registry.LocalMachine;
    RegistryKey rks = rk.CreateSubKey("SOFTWARE\\Wow6432Node\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION");
    rks.SetValue(textBox1.Text,"11001",RegistryValueKind.DWord);
    rk.Close();
    }
      

  8.   


    比如哪些呢,下了一些 坑死了,基础功能缺不说,很多不更新了。bug就放哪儿了
      

  9.   

    取决你的 mshtml.dll
      

  10.   

    你需要修改注册表,默认情况下Webbrowser控件使用的是IE7的内核,你可以通过修改注册表修改控件的IE内核
    http://www.cnblogs.com/doscanner/p/5611434.html
      

  11.   

    怎么还在用ie?chrome开源项目不是很好用嘛?
      

  12.   

    https://www.cnblogs.com/1175429393wljblog/p/5398928.html
      

  13.   

    webbrowser 本身并没有携带任何浏览器内核或渲染方案,这些东西是随着操作系统的ie变化的,但是可以在网站或装载完成的document里面增加头部
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    具体这个参数怎么调整你可以去百度。
      

  14.   

    geckofx 真心不好用,可能是还不熟悉吧,哎
      

  15.   

    webbrowser控件 就是 IE 的 COM+ 组件(就是通常说的内核,IE 也是调用它工作的)
    你在编译应用程序时,就把相应版本固定住了
    我不认为可以修改注册表指定版本,因为使用什么组件是由编译在你应用程序中的组件号决定的
      

  16.   

    实际工作中他调用的是系统ie的com+接口,具ie体版本由系统ie版本来定,但是不同的是他的渲染模式,这个规律就更难找了。
      

  17.   

    webbrowser 本身并没有携带任何浏览器内核或渲染方案,这些东西是随着操作系统的ie变化的,但是可以在网站或装载完成的document里面增加头部
      

  18.   

    执行时调用的目标计算机的IE内核
    简单验证webBrowser1.Navigate("https://www.baidu.com");
    MessageBox.Show(webBrowser1.Version.ToString());
    在不同系统下(IE版本不同),输出不同至于通过注册表修改,个人觉得不可行,除非系统上安装了多个IE版本,可供选择