Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Dojo1.9,IE中的所有解析都会失败_Javascript_Internet Explorer_Parsing_Dojo - Fatal编程技术网

Javascript 使用Dojo1.9,IE中的所有解析都会失败

Javascript 使用Dojo1.9,IE中的所有解析都会失败,javascript,internet-explorer,parsing,dojo,Javascript,Internet Explorer,Parsing,Dojo,所以我有一个相当大的web应用程序运行Dojo1.8。在IE和Firefox的多个版本中,一切都运行良好。我决定试一试1.9,并将依赖关系从1.8改为1.9。Firefox在第一次运行时运行良好,没有明显的变化。然而,IE版本8和9都没有做任何事情。所有静态HTML内容(和动态jsp内容)都很好,所有用于获取所需模块的ajax调用似乎都很好,但解析器的行为就像从未被调用过一样。控制台中没有错误、警告或任何内容 我一直在玩我的dojo配置,这没什么特别的: var dojoConfig = {

所以我有一个相当大的web应用程序运行Dojo1.8。在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突然又开始工作了。正如您所能想象的,我真的希望异步为true。为什么这会绊倒你?我希望我提供了足够的信息

编辑:我通过在名为common.js的文件的标记底部包含一个脚本标记来调用解析器,大致如下所示:

require([
    "dojo/parser", 
    "dojo/ready"
    ], 
    function(parser, ready){
        ready(function(){
            parser.parse();    
        });
    });

我已经尝试将dojo/ready换成dojo/domrready!并将parser.parse从ready(function(){block)中取出,得到相同的结果。

一个快速解决方法是将src发行版中的dijit/templates、dijit/form/templates和dijit/layout/templates文件夹复制到dojo发行版中


有关详细信息,请参见和。

我敢说我自己的答案比迪吉特公司的首席执行官比尔·基斯(Bill Keese)更正确……)

但是,说真的,自从Bill发布了这篇文章以来,实际问题已经得到了纠正和解决。Dojo的ticket#17141解决了这一问题,并包含在最新的1.9.1版本中:


更新到此版本后,问题得到了解决,IE现在运行良好。

希望我能为您找到一个解决方案。我能说的是,IE是最大的垃圾。它只会给我带来问题。我创建的特殊解决方案总是与IE相关的。总之,这里的亮点是我总能找到IE的解决方案bage…你是如何/在哪里调用解析器的?我对Dojo 1.9和IE10也有同样的问题,谢谢你的评论。我刚刚用我如何调用解析器的信息更新了我的问题。你是如何验证问题是否存在于解析器中的。parse调用?