2

我正在编写一个离线 HTML 应用程序,发现three.js 是一个很好的库(Win7、IE10)。

我在 IE10 中测试了几个示例 r59 脚本(包含我喜欢使用的功能),它们运行良好。

这些脚本是:

“css3d_periodictable.html”和“canvas_particles_random.html”

但是当将这些示例脚本从“.html”重命名为“.hta”(整个编码项目是一个 HTA 项目)时,相同的(否则未更改)示例脚本会抛出错误并且不起作用。

由于这不是我通常遇到的,在我看来,该库依赖于 MSHTA.EXE 删除的一些 IE 功能......

我的问题:这是可以修复的(浏览器检查条件,fe)还是 HTA 缺少的一些核心功能?

预先感谢您的帮助。

奥利弗

4

1 回答 1

2

好的,问题理解了......解决方案很棘手。

在 HTML 应用程序 (HTA) 中使用 Three.js 代码时,HTA 默认使用 IE7 快速模式。您可以轻松将以下行添加到 Three.js HTA:

<meta http-equiv="X-UA-Compatible" content="IE=IE10" />

但是,由于 MS IE 团队想要“更多地关注标准”,因此不再理解 HTA 标记(窗口状态、应用程序名称 - 仅举几例):-(

但是有一个有效的技巧......

使用您喜欢的所有标记代码创建一个空 HTA,例如:

<hta:application windowstate="minimize" border="none" icon="myIcon.ico" />

不要在此处使用 IE10 X-UA-Compatible 元语句。

在该 HTA 中创建一个 onload javascript 函数,将 THREE.js HTML 页面加载到 document.location.href

如此处所述(social.msdn.microsoft.com)

HTML 页面应包含所有 THREE.js 代码和元语句(见本文开头)。奇迹般有效。

感谢 Teemu 为我指明了正确的方向!

于 2013-07-31T12:24:41.417 回答