是否有任何关于让HTML5画布在IE9中工作的提示

Are there any tips on getting HTML5 canvas to work in IE9?

本文关键字:IE9 工作 提示 任何关 HTML5 是否      更新时间:2023-09-26

我一直在HTML5/Javascript的新画布功能中开发一款游戏,一切都很顺利,直到我开始在Internet Explorer 9上测试它。所以我会含糊地问,有什么技巧可以让游戏在IE9中完全运行吗?

以下是我所知道的:

1( 我必须包括

<!DOCTYPE html5>

否则IE9不可能弄清楚我确实打算使用HTML5,而不是旧版本。

2(IE9必须明确告知在IE9模式下运行,而不是在IE8模式下运行

,因为显然每个升级到IE9的人都打算默认在IE8模式下运行它。

3(.ttf文件使IE9不满意。这是一个问题,因为与IE9一起使用的字体文件(即.eof(似乎被Firefox和其他真实浏览器忽略了。有什么技巧可以解决这个问题吗?

4(最后,我最大的问题,在让所有其他工作之后:只有一些图形被绘制到屏幕上。简而言之,游戏的"引擎"分为几个系统。一些,例如粒子(基本上只是移动球体的集合(被绘制,而其他,例如所有精灵,没有绘制,但绘制了生命条。它们都使用相同的完全相同的绘制方法,所以我真的无法理解为什么有些有效而有些无效。有很多东西要画,但同样,真正的浏览器处理得很好。

我知道这很模糊,但我只是希望有人对此有一些经验,并且可以将我链接到适当的教程,或者给我一个关于如何解决这个问题的提示。这似乎是一个独立的项目,只是为了让IE9运行在Firefox,Safari,Chrome和Opera上完美运行的代码。谢谢,非常感谢所有的帮助。

  1. <!DOCTYPE html>仅告诉浏览器使用标准模式。HTML5 被构建为在浏览器支持的情况下优雅地失败。一个例子是日期选择器输入,它作为文本类型输入在所有浏览器(支持它的 Opera 除外(上优雅地失败。

    DOCTYPE在HTML5中保留为"大部分无用,但必需"的标头,仅用于在常见浏览器中触发"标准模式"。

    文档类型不会告诉浏览器 HTML 的版本。这就是DTD的工作。DTD 只是告诉浏览器标记中的有效标记是什么。它仅用于验证以确定您使用的 HTML(HTML 或 XHTML;松散、过渡或严格(。在HTML5的情况下,没有DTD,因为它没有用处。

  2. 您可以使用元命令强制 IE 以最新模式或 chrome 帧呈现,但这通常是不必要的。使用 doctype 声明严格模式以及使用正确的标记足以完成这项工作。

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
  3. Paul Irish 的防弹@fontface语法应该将您的字体放入"多合一"语法中,以便可以在所有浏览器上加载相同的代码。

  4. 我不了解你,但IE9 +对画布有基本的支持和文本支持,这与它这个时代的浏览器相当。IE甚至有自己的版本9及更高版本的测试页面,以展示他们的HTML5支持。你的代码一定有问题。

@Joseph几乎回答了你的问题。对于IE中的画布支持,您可以尝试ExplorerCanvas。

HTML5已经支持我的IE9。这是一个例子。执行此操作时,请务必查看开发人员指南。