今天遇到在winform中操作web页面,使用JavaScript调用页面脚本中的点击事情无效(之前是正常的),也不报错,找了好久没有找到具体问题,最后发现是浏览器版本问题。
解决办法:在窗体加载时设置浏览器版本,代码如下;
//窗体构造函数
public FrmData()
{
InitializeComponent();
SetFeatures(11000);
}
/// <summary>
/// 修改注册表信息使WebBrowser使用指定版本IE内核
/// </summary>
/// 传入11000是IE11, 9000是IE9, 只不过当试着传入6000时, 理应是IE6, 可实际却是Edge
///
public static void SetFeatures(UInt32 ieMode)
{
if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
{
throw new ApplicationException();
}
//获取程序及名称
string appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
string featureControlRegKey = "HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\Main\\FeatureControl\\";
//设置浏览器对应用程序(appName)以什么模式(ieMode)运行
Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION", appName, ieMode, RegistryValueKind.DWord);
//不晓得设置有什么用
Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", appName, 1, RegistryValueKind.DWord);
}
加上这段代码后,就可以正常调用JavaScript事件了。
注:内容仅供参考,具体问题,具体分析,请多多指正!