TWebBrowser(TEmbeddedWB)控件中的拼写检查程序

时间:2013-10-10 14:58:43

标签: delphi webbrowser-control c++builder spell-checking twebbrowser

Internet Explorer 10内置了拼写检查程序,它运行正常。我尝试创建一个小的HTML页面,用以下内容对其进行测试:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><HEAD>
<META name=GENERATOR content="MSHTML 10.00.9200.16721"></HEAD>
<BODY spellcheck=true contentEditable=true style="MARGIN: 0.5em">
<P>Theze ara mispeled wordz</P>
</BODY></HTML>

所需的只是放置属性spellcheck=truecontentEditable=true

我也尝试添加<meta http-equiv="X-UA-Compatible" content="IE=10" />例如

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><HEAD>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<META name=GENERATOR content="MSHTML 10.00.9200.16721"></HEAD>
<BODY spellcheck=true contentEditable=true style="MARGIN: 0.5em">
<P>Theze ara mispeled wordz</P>
</BODY></HTML>

就此而言,使用 IE = edge 而不是 IE = 10 没有任何区别: What does <meta http-equiv="X-UA-Compatible" content="IE=edge"> do?

然后我尝试将 FEATURE_BROWSER_EMULATION 设置添加到注册表中: http://www.west-wind.com/weblog/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version

这改进了某些具有border-radius等CSS样式的元素的呈现,所以至少我可以看到它处于IE10模式,但仍然没有拼写检查。

上述页面适用于Internet Explorer浏览器,拼写检查正常。

然而,当相同的内容被加载到TWebBrowser时(我使用TEmbeddedWB但它只是相同的包装器)它不起作用。

谷歌搜索和谷歌搜索解决方案后,仍然没有找到一个。你知道这在WebBrowser控件中是否可行?我需要的解决方案可以在Windows 7上运行,而不仅仅是Windows 8.我已经看到了注册表项 FEATURE_SPELLCHECKING ,但它仅适用于Windows 8.

是否有任何其他解决方案可以在DesignMode TWebBrowser控制范围内使用?我正在寻找弯曲的红色下划线,如Word或其他程序和可能的GUI窗口,以提供替代词。

2 个答案:

答案 0 :(得分:5)

我觉得你在这里运气不好。 关于FEATURE_SPELLCHECKING和Windows 7的Microsoft Connect上有一个错误报告。不幸的是,它已经“按照设计”关闭了。

这是微软的官方回答:

  

感谢您的反馈。

     

进行额外审核后,仅支持拼写功能   Windows 7及更高版本,Windows 7不支持。这是   因为拼写功能内置于Windows 8平台中。

     

致以最诚挚的问候,

     

Internet Explorer小组

答案 1 :(得分:2)

尝试在注册表中更改它...

再见 Nicolas Perichon

HKEY_LOCAL_MACHINE(或HKEY_CURRENT_USER) 软件Microsoft Internet Explorer Main FeatureControl FEATURE_BROWSER_EMULATION contoso.exe =(DWORD)000090000

10001 (0x2711)Internet Explorer 10.网页以IE10标准模式显示,与!DOCTYPE指令无关。 10000 (0x02710)Internet Explorer 10.包含基于标准的网页!DOCTYPE指令以IE10标准模式显示。 Internet Explorer 10的默认值。

info de Microsoft: msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation