delphi - TWebrowser 加载大字体页面

标签 delphi browser

我在组件 TwebBrowser 中发现了一个奇怪的行为,当我加载某些页面时,它们会以更大的字体显示。与 Internet Explorer 中使用的不同。

查看这些示例图像

在此链接中http://docwiki.embarcadero.com/RADStudio/en/Main_Page在 TWebBrowser 中加载较大字体,在 IE 中加载小字体(另一种样式)。

alt text

本页https://stackoverflow.com/在TWebBrowser组件和IE中以相同的样式加载。

alt text

我在不同的机器上尝试过,但发生了同样的事情。

我该如何解决这个问题?这是 CSS 的问题吗?

最佳答案

我认为问题在于 TWebBrowser 组件正在兼容模式下运行 Internet Explorer。事实上,如果您在 Internet Explorer 8 及更高版本中打开 docwiki 页面,您会发现字体小且美观,与它们在 TWebBrowser 中的外观形成鲜明对比。但是,如果单击 Internet Explorer 窗口中的“兼容性 View ”按钮,您将获得与在 TWebBrowser 组件中获得的相同的大文本。 (众所周知,IE6 使用过大的文本。)

根据this MSDN blog entrythe MSDN docs ,要控制TWebBrowser控件的兼容模式,使用注册表:

procedure TForm3.FormCreate(Sender: TObject);
begin

  with TRegistry.Create do
    try
      RootKey := HKEY_CURRENT_USER;
      if OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', true) then
        WriteInteger(ExtractFileName(Application.ExeName), 8888);
    finally
      Free;
    end;

  WebBrowser1.Navigate('http://docwiki.embarcadero.com/RADStudio/en/Main_Page');
end;

“IE8 标准模式”、“IE7 标准模式”和“IE8 标准模式(强制)”的值分别为 8000、7000 和 8888。因此,上述代码将强制使用 IE8 标准模式。

然而,令人惊讶的是,将模式设置为标准只会使字体变得更大

关于delphi - TWebrowser 加载大字体页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3959334/

相关文章:

delphi - 使用 JCL 和 CLR 返回复杂类型(类、类数组)

delphi - 如果一个对象认识很多它的所有者,这是一种代码味道吗?

delphi - 组织搜索路径

delphi - FireMonkey相当于Application.OnMessage?

html - 防止调整浏览器大小改变 HTML/CSS 布局

mysql - 哪些是最小化服务器往返的 RDBMS?哪个 RDBMS(在这方面)比 MS SQL 更好?

c# - Azure 502错误..尝试新的WebBrowser()和/或image.Save()

javascript - Node.js - 如何通过弹出消息检测一些旧的或不受支持的浏览器?

javascript - 访问系统光标图像形式的JavaScript

google-chrome - Golang Gorilla Session 在 Chrome 浏览器中不工作但在 Safari 和 Firefox 上工作