我正在编写一个离线 HTML 应用程序,发现 Three.js 是一个很好的库(Win7、IE10)。
我在 IE10 中测试了几个示例 r59 脚本(包含我想要使用的功能),它们工作得很好。
这些脚本是:
“css3d_periodictable.html”和“canvas_articles_random.html”
但是,当将这些示例脚本从“.html”重命名为“.hta”(整个编码项目是一个 HTA 项目)时,相同的(否则未更改的)示例脚本会抛出错误并且无法工作。
由于这不是我通常遇到的情况,因此在我看来,该库依赖于随 MSHTA.EXE 删除的某些 IE 功能...
我的问题:这是可以修复的问题(浏览器检查条件等)还是 HTA 缺少的某些核心功能?
预先感谢您的帮助。
奥利弗
最佳答案
好的,问题明白了...解决方案很棘手。
在 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
如上所述here (social.msdn.microsoft.com)
HTML 页面应包含所有 THREE.js 代码和元语句(请参阅本文开头)。就像魅力一样。
感谢 Teemu 为我指明了正确的方向!
关于internet-explorer - [三.js] : script running in IE10, 未作为 HTA 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17941658/