c# - 允许 javascript 在 Windows 窗体 Web 浏览器上运行

标签 c# javascript webbrowser-control windows-forms-designer

我想使用 Web 浏览器访问加载时使用 JavaScript 的网站。我知道 Web 浏览器是当前安装的 Internet Explorer 版本的包装器。但是,在 Internet Explorer 上测试网站不会产生任何错误,但如果我使用 Web 浏览器访问内容则不起作用。

我还查看了我的互联网安全设置以确保它已启用。

我得到的问题是;

Error in Web Browser

最佳答案

很尴尬的是,我在发布这篇文章后不久就找到了答案,但我认为遇到与我相同问题的任何人都会从这个答案中找到安慰;

下载最新版本的 Internet Explorer 似乎还不够,您必须通过添加新的注册表项来明确指定要使用的 IE 版本。

HTML 修复;

<!DOCTYPE html> 
<html> 
  <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    ... other headers
  </head>
  <body>
    ... content
  </body>
</html>  

通过注册表;

转至 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 仅适用于 64 位或 32 位机器。

或者转到 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION 在 64 位系统上获取 32 位(如果您将 key 添加到两个位置不会有什么坏处有它们。如果没有它们,您可以自己制作文件夹)。

创建一个新的 DWORD key 并将其命名为您的应用程序的名称,例如“myapp.exe”然后编辑键的值。根据您要模拟的 IE 版本,您可以添加许多不同的值。我输入了 11001(作为十进制值 - 十六进制中的 0x2AF9),它模拟 IE 11(更多值位于:http://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx#browser_emulation)。

如果您像我一样使用 Visual Studio,您会注意到此方法甚至可能不起作用。但是,它确实有效。您需要使用资源管理器或终端手动打开 .exe 文件,而不是在 Visual Studio 上运行项目。

如果您希望在 Visual Studio 上运行该程序,请考虑为“myapp.vshost.exe”添加一个 key ,因为它用于调试。

更多信息和来源来自; http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version .

我希望这可以帮助任何人解决有关您的 Web 浏览器的任何问题,可能使用错误的 IE 版本作为包装器或功能未按预期工作。

关于c# - 允许 javascript 在 Windows 窗体 Web 浏览器上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142594/

相关文章:

c# - 反射(reflection):框架行为与 GetRuntimeProperty 方法不一致

c# - 按范围过滤字符串

javascript - 使用 java 脚本在 MVC 中提供用户友好的 URL

caching - 如何设置 Meteor 不缓存特定页面的任何内容?

wpf - 是否可以从 WPF 应用程序异步调用 WebBrowser.InvokeScript?

c# - 将第二个索引器添加到 Math.NET Numerics

c# - .Net Remoting 到 WCF 的挑战!

javascript - 有关分屏书签的帮助

javascript - 带有模式显示的mysql数据的variabel php

javascript - Web 浏览器控制阻止您确定要离开此页面吗