【发布时间】:2011-08-31 23:48:31
【问题描述】:
我正在开发一个缩略图器,通过该服务可以在无表单 IE9 控件中获取 HTML 内容的缩略图。使用 DrawToBitmap 调用和几个 GDI 调用,一切正常,但未显示 SVG 内容。其他一切似乎都显示得很好,但没有 SVG。
我认为这与 SVG 在 IE 中的实现方式有关,但我不知道细节。有什么想法吗?
TIA。
【问题讨论】:
我正在开发一个缩略图器,通过该服务可以在无表单 IE9 控件中获取 HTML 内容的缩略图。使用 DrawToBitmap 调用和几个 GDI 调用,一切正常,但未显示 SVG 内容。其他一切似乎都显示得很好,但没有 SVG。
我认为这与 SVG 在 IE 中的实现方式有关,但我不知道细节。有什么想法吗?
TIA。
【问题讨论】:
您还可以设置 HTML4 strict 或 HTML5 的文档类型。
<!DOCTYPE HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
来自http://www.seowarp.com/blog/2011/06/svg-scaling-problems-in-ie9-and-other-browsers/:
在开始之前,我想指出,在我的测试页面上,Internet Explorer 9 拒绝在基本 HTML 页面上显示我的任何 SVG 图像,直到我声明 HTML4 strict 或 HTML5 doctypes。
【讨论】:
答案来自 IEBlog 的 Ted Johnson:
IE9 没有单独的 SVG 引擎;都是一个 DOM 和渲染 管道。但是,如果您的文档不在 9 标准文档中 模式,您将不会获得任何 SVG 内容。我认为,默认情况下, .NET 中的 WebBrowser 控件默认为兼容模式。尝试添加 HTML 页面顶部的元标记以强制 IE9 模式:
<meta http-equiv="X-UA-Compatible" content="IE=9">
这确实像电灯开关一样打开了 SVG 渲染。
【讨论】: