2011-03-17 161 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浏览器,迫使内部网站到无论文档类型的兼容模式的设置。这将解释功能之间的区别,如果你有它的设置。

无论采用哪种方法,您都应该保持良好的语法,并且不要在数组或对象中使用尾随逗号。