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

时间:2012-05-07 05:20:47

标签: javascript html5 internet-explorer canvas internet-explorer-9

我一直在开发一个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上完美运行的代码。谢谢,非常感谢所有帮助。

3 个答案:

答案 0 :(得分:2)

  1. <!DOCTYPE html> only tells the browser to use standards mode。 HTML5的构建是为了让浏览器支持它而优雅地失败。一个例子是datepicker输入,它在所有浏览器(支持它的Opera除外)上正常失败,作为文本类型输入。

      

    DOCTYPE在HTML5中保留为“通常无用,但必需”的标题,仅用于在常见浏览器中触发“标准模式”。

    doctype不会告诉浏览器哪个版本的HTML。那是DTD的工作。 The DTD只是告诉浏览器标记中的有效标记。它仅用于验证以确定您使用的HTML(HTML或XHTML;松散,过渡或严格)。在HTML5的情况下,没有DTD,因为它没有用。

  2. 您可以使用meta命令强制IE在其最新模式或chrome框架中渲染,但通常不需要。使用doctype声明严格模式以及使用适当的标记就足以完成这项工作。

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    
  3. Paul Irish's bulletproof @fontface syntax应该将您的字体置于“一体化”语法中,以便可以在所有浏览器上加载相同的代码。

  4. 我不了解你,但IE9+ has basic support and text support for canvas与其年龄的浏览器不相上下。 IE even has it's own testdrive page版本9及以上版本展示了他们对HTML5的支持。您的代码一定有问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

HTML5 已经支持我的IE9。这是example。这样做时一定要检查developers guide