2011-03-17 157 views
2


我用extjs庫編寫了一個程序,該程序在所有瀏覽器中都能正常工作,除了Internet Explorer 8以外,問題在於,它在我從localhost載入它時起作用,但是當從服務器,它不加載頁面,我有一個空白頁面,
我刪除了一個逗號,並從服務器訪問時程序開始工作。有人有解釋嗎?extjs和Internet Explorer 8問題

這裏是標題:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta name="Description" content="Default Style" /> 
    <meta name="Version" content="2.1.1" /> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    <title>project name</title> 
    <link rel="stylesheet" type="text/css" href="./style/default/main.css" media="all" /> 
    <style type="text/css" media="all">@import "./style/default/main.css";</style> 
    <link rel="shortcut icon" href="./style/default/images/favicon.ico" type="image/ico" /> 
    <script type="text/javascript" src="http://10.215.63.218/Apsys/js/base.js"></script> 
<script type="text/javascript" src="http://10.215.63.218/app/js/collapse.js"></script> 
<script type="text/javascript" src="http://10.215.63.218/app/lib/overlib/overlib.js"></script> 
</head> 
+2

你沒有從你的頁面發佈的任何代碼,所以你可能不得不等待,直到有人用神通看到你的問題:-) – Pointy 2011-03-17 18:15:31

+2

它與後面的逗號 { ID的數組:「面板-1 」, 柔性:1,//這是導致該問題 },{ ID 逗號:‘面板-2’, 柔性:1 }從服務器進行訪問時,它工作在本地,但不是問題 – Mansuro 2011-03-17 20:15:46

回答

12

Internet Explorer不能處理尾隨對象和數組逗號。這對於Ext來說是一個特別經常出現的問題,您經常會創建大對象,每行一個屬性,並且評論/刪除很多東西。

這將在IE打破:

new Ext.Panel({ 
    id: 'mypanel', 
    cls: 'my-panel-class', 
    html: 'Some HTML', 
    colors: [ 
     'yellow', 
     'blue', 
     'red', 
     //'pink' 
    ], 
    renderTo: Ext.getBody(), 
}); 

請注意,在第一塊'red'Ext.getBody()之後額外的逗號。

這將工作:

new Ext.Panel({ 
    id: 'mypanel', 
    cls: 'my-panel-class', 
    html: 'Some HTML', 
    colors: [ 
     'yellow', 
     'blue', 
     'red' 
     //'pink' 
    ], 
    myArray: ['yellow', 'blue', 'red'], 
    renderTo: Ext.getBody() 
}); 
+0

非常感謝:),但我不明白爲什麼它在localhost上工作,但從服務器訪問時卻不工作? – Mansuro 2011-03-17 20:08:55

+0

好問題 - 我不是100%確定的。我已經看到IE8以前正確處理這些錯誤的逗號,但也許它只處於或不處於怪癖模式(頁面頂部沒有DOCTYPE聲明)。本地主機與服務器上的頁面DOCTYPE不同? – 2011-03-18 14:35:48

+0

我添加了頭文件,它不是怪癖或IE7兼容模式 – Mansuro 2011-03-18 14:39:08

1

爲什麼瀏覽器工作在本地主機,而不是在發佈的服務器是一個真正的奧祕,但是,檢查你的HTML,我的例子在Chrome和Explorer 8中(在本地主機)運行正確我的錯誤:

<body style="text-align:center"> 
<div id="bodyForm" style="width:100%;"> 
</div> 
</body> 
在app.js

renderTo: Ext.get('bodyForm') 

我修正爲

<body id="idBody"> 
</body> 

在app.js:

renderTo: Ext.get('idBody') 
2

對於VS服務器本地主機之間的差異,有在IE瀏覽器,迫使內部網站到無論文檔類型的兼容模式的設置。這將解釋功能之間的區別,如果你有它的設置。

無論採用哪種方法,您都應該保持良好的語法,並且不要在數組或對象中使用尾隨逗號。