2013-02-19 22 views
4

我一直在爭取一段時間,只有IE9纔會出現錯誤。根據jQuery和jQuery-UI的版本,錯誤信息會有所不同。使用jQuery 1.8.3和jQuery UI的1.8.24,我會收到以下錯誤信息:jQuery對話框+ iframe在IE9中給出了這個錯誤:SCRIPT5009:'數組'未定義

SCRIPT5009: '數組' 未定義

然而,與jQuery 1.7.x和jquery- UI 1.7.x,我會收到以下錯誤信息:

SCRIPT5009: '對象' 是不確定的

這裏是有問題的網頁的代碼:

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/ui/1.8.24/jquery-ui.min.js"></script> 
<title></title> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#dialog").dialog(); 
     }); 
    </script> 
</head> 
<body> 
    <div id="dialog"> 
     <iframe id="iframe1" src="jqtest2.htm"></iframe> 
    </div> 
</body> 
</html> 

這裏是在頁面的iframe代碼:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> 
</head> 
<body> 
</body> 
</html> 

在IE 9使用兼容性視圖模式,我沒有得到這些錯誤信息,在谷歌Chrome,或Firefox瀏覽器。

iframe中的jquery包含似乎是罪魁禍首。

回答

5

這是我如何解決我的問題。我留下了我的iframe src屬性爲空,並且只有在調用dialog()之後,才使用jquery對其進行初始化。我想,這樣IE會稍後加載iframe內容,在這種情況下,問題不會出現。以下是修改後的代碼:

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script> 
<script type="text/javascript" src="http://code.jquery.com/ui/1.8.24/jquery-ui.min.js"></script> 
<title></title> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#dialog").dialog(); 
      $("#iframe1").attr("src", "jqtest2.htm"); 
     }); 
    </script> 
</head> 
<body> 
    <div id="dialog"> 
     <iframe id="iframe1" src=""></iframe> 
    </div> 
</body> 
</html> 

iframe html文件保持不變。

+1

這是一個很好的解決方案,效果很好,即使對話框東西心不是參與。謝謝! – 2014-08-12 15:53:51

0
function waitForjQuery(){ 
    if(typeof jQuery!='undefined'){ 
     //Do yor stuff! 
    } 
    else{ 
     setTimeout(function(){ 
      waitForjQuery(); 
     },500); 
    } 
} 
waitForjQuery(); 
相關問題