我正在编写一个脱机HTML应用程序,并发现three.js可以成为一个很好的库(Win7,IE10)。
我在IE10中测试了几个示例r59脚本(包含我希望使用的功能),它们运行良好。
这些脚本是:
“css3d_periodictable.html”和“canvas_particles_random.html”
但是当将这些示例脚本从“.html”重命名为“.hta”(整个编码项目是一个HTA项目)时,相同的(否则未更改的)示例脚本会抛出错误而无法正常工作。
由于这通常不是我经常遇到的,在我看来,该库依赖于使用MSHTA.EXE删除的一些IE功能......
我的问题:这是可以解决的问题(浏览器检查条件,f.e。)还是HTA缺少的一些核心功能?
提前感谢您的帮助。
奥利弗
答案 0 :(得分:2)
好的,问题理解......解决方案很棘手。
在HTML应用程序(HTA)中使用Three.js代码时,HTA默认使用IE7快速模式。您可以轻松地将以下行添加到Three.js HTA:
<meta http-equiv="X-UA-Compatible" content="IE=IE10" />
然而,由于MS IE团队希望“更多地关注标准”,因此不再理解HTA加价(windowstate,applicationname - 仅举几例): - (
但有一个有效的技巧......
使用您喜欢的所有标记代码创建一个空的HTA,例如:
<hta:application windowstate="minimize" border="none" icon="myIcon.ico" />
请勿在此处使用IE10 X-UA-Compatible元声明。
在HTA中创建onload javascript函数,将THREE.js HTML页面加载到document.location.href
如here (social.msdn.microsoft.com)
所述HTML页面应包含所有THREE.js代码和元语句(参见本文开头)。像魅力一样。
感谢Teemu指出我正确的方向!