2013-07-31 66 views
1

我有一個問題,當我使用的是選項道場異步在IE中設置假的,我的應用程序需要工作道場在同步模式下,看我的代碼:在IE中使用Dojo 1.9.1不工作

  <script> 
     var dojoConfig = { 
      async: false, 
      packages: [{ 
       name: "ControleOO", 
       location: location.pathname.replace(/\/[^/]*$/, '') + "/ControleOO" 
      }] 
     }; 
    </script> 
    <script src="js/dojo/dojo.js"></script> 

    <script> 

    require(["dojo/_base/window", "ControleOO/Base", "ControleOO/Config", "ControleOO/Mouse"], function(win, Base, Config, Mouse){ 

     window.Base = new Base(); 

     window.map = window.Base.getMapa(window.Base); 
     config = new Config('PROCEMPA'); //TODO Alterar para base desejada 

     window.mouse = new Mouse(); 

    }); 

    </script> 

當我在IE上運行此頁面時,require方法不會調用,但在其他瀏覽器中該方法調用正常。

這是一個BUG或者我不知道配置DOJO lib的正確方式嗎?

最好的問候,

雷南

+0

如果我刪除我的模塊的要求執行得很好。 – rbarbalho

回答

1

如果它工作正常,當你的模塊不包括在內,這個問題只存在於IE < 9,你可能已經編寫的JavaScript,是不是EcmaScript的3標準。不符合規範的代碼最常見的原因是無意中在某處留下了尾隨逗號。有關更多信息,請參閱Are trailing commas in arrays and objects part of the spec?

+0

我發現了問題,在我的模塊中我有特殊字符,Dojo會將字符轉換爲其他字母。是否可以在Dojo上配置編碼/字符集來接受特殊字符? – rbarbalho

+0

Dojo不能也不能更改JavaScript文件的字符編碼。瀏覽器負責管理字符編碼。這就是爲什麼當您使用非US-ASCII字符並告訴您改用轉義序列時,jslint會報告「不安全字符」警告。通常,只要您的服務器配置正確,您就可以使用原始的UTF-8字符。 –

+0

非常感謝您的幫助! – rbarbalho