所以我有一个运行Dojo 1.8的相当大的Web应用程序。在IE和Firefox的多个版本中,一切正常。我决定给1.9分,并将我的依赖从1.8改为1.9。 Firefox运行良好,首次运行时没有明显的变化。然而,IE版本8和9都没有做任何事情。所有静态HTML内容(和动态jsp内容)都很好,并且获取所需模块的所有ajax调用似乎都运行正常,但解析器的行为就像它从未被调用过一样。控制台中没有错误,警告或任何内容。
我一直在玩我的dojo配置,这没什么特别的:
var dojoConfig = {
baseUrl: "js/",
async: true,
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
parseOnLoad: false,
isDebug: true,
tlmSiblingOfDojo: false,
packages: [
{ name: "dojo", location: "dojo-release-1.9.0/dojo" },
{ name: "dijit", location: "dojo-release-1.9.0/dijit" },
{ name: "dojox", location: "dojo-release-1.9.0/dojox" }
]
};
我发现如果我注释掉async:true,IE会突然重新开始工作。你可以想象,我真的想要异步真实。为什么这个绊倒IE?我希望我已经提供了足够的信息。
编辑:我通过在标签底部包含一个名为common.js的文件来调用解析器,该文件看起来大致如下:
require([
"dojo/parser",
"dojo/ready"
],
function(parser, ready){
ready(function(){
parser.parse();
});
});
我尝试过更换dojo /为dojo / domReady做好准备!并将parser.parse从ready(function()块中取出,结果相同。
答案 0 :(得分:2)
一个快速的解决方法是将src发行版中的dijit / templates,dijit / form / templates和dijit / layout / templates文件夹复制到你的dojo发行版中。
有关详细信息,请参阅https://bugs.dojotoolkit.org/ticket/17141和https://bugs.dojotoolkit.org/ticket/17146。
答案 1 :(得分:2)
我敢于将自己的答案标记为比尔基斯,Dijit领导......:)
但严重的是,自从比尔发布此消息后,实际问题已得到纠正和承诺。这是在Dojo的17171号机票中解决的,并包含在最新的1.9.1版本中:
https://bugs.dojotoolkit.org/query?group=status&milestone=1.9.1
更新到此版本可修复此问题,IE现在可以正常工作。