WebBrowserControl 快捷键失效 (WinForms)





5.00/5 (1投票)
从 Internet Explorer 8 升级到 Internet Explorer 11 后,WebBrowserControl 快捷键停止工作。经过大量研究,我找到了问题的根本原因,以及解决此问题的方法。
引言
有一天,我遇到一个奇怪的问题,即在从 Internet Explorer 8 升级到 Internet Explorer 11 后,WebBrowserControl
快捷键无法正常工作。
我开始搜索快捷键(例如:CTRL+C、CTRL+V)无法工作的原因。有一些建议说要覆盖 keypress
事件,并编写自己的逻辑来处理快捷键。覆盖 keypress
事件可能不是一个坏主意。但是,如果我们要支持 100 个快捷键,我们需要编写代码来处理所有这些快捷键。
经过大量研究,我终于发现这是一个兼容性问题。向 webbrowser
控件添加 meta 标签可以解决此问题。
我分享这个经验,以便如果有人遇到相同的问题,这个技巧可以帮助他们。
Using the Code
在导航 URL 之前,将 meta 信息写入 webbrowser
的 documenttext
属性,如下所示
//Setting compatible mode of IE.
this.m_oWebBrowser.DocumentText =
@"<html>
<head><meta http-equiv=""X-UA-Compatible""
content=""IE=IE11"" /> </head>
<body></body>
</html>";
this.m_oWebBrowser.Navigate(szURL);