日期:2014-05-16 浏览次数:20472 次
同事写了一个最基本的EXT3.2的例子,就一个基本JSP页面,弹出一个EXT的对话框。
?
结果在IE8上报错对象不支持此属性或方法(ext-all.js文件中),让我帮忙调试。觉得简简单单几行代码,怎么会出现这种错误?我先用我自己的IE登录他的页面,一样的错误。但当我想用火狐进一步跟踪的时候,居然发现火狐上面没有异常,换Chrome,也没有错误。看来错误只出现在IE上。
?
可是短短几行代码,翻来覆去,也瞧不出有任何错误。代码如下:
?
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>你好</title>
<link rel="stylesheet" type="text/css" href="styles/ext-all.css" />
<script type="text/javascript" src="scripts/ext-base.js"></script>
<script type="text/javascript" src="scripts/ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function(){
// Ext.QuickTips.init();
Ext.MessageBox.alert("fff", "fffffff");
});
</script>
</head>
<body>
hello World
</body>
</html>
?
(上述代码中的路径都没有错误)。
?
最后才发现,原来是"hello Wolrd"这几个字造成的。确切的解释是,当使用EXT时,<body></body>中的第一个元素不能是纯文本,否则在IE上会报错误。
?
上官网想进一步了解原因,未果。同时了解到这个BUG在EXT2.X开始就存在了,居然一直没有解决,汗……
?
比较蹩脚的解决方式也很直接,在<body>后面填一个<span/>之类的就可以了,如下:
?
<body>
<span/>
hello World
</body>
?
唉,其实EXT做的真的很不错。
Ext.onReady(function(){
var data= [
{name:'Jul 07', visits: 0.001, views: 0.002},
{name:'Aug 07', visits: 0.002, views: 0.002},
{name:'Sep 07', visits: 0.003, views: 0.003},
{name:'Oct 07', visits: 0.004, views: 0.004},
{name:'Nov 07', visits: 0.005, views: 0.001},
{name:'Dec 07', visits: 0.006, views: 0.002},
{name:'Jan 08', visits: 0.007, views: 0.003},
{name:'Feb 08', visits: 0.508, views: 0.001} ]
var store = new Ext.data.Store({
proxy: new Ext.data.MemoryProxy(data),
reader: new Ext.data.JsonReader({},
[{name: 'name'},
{name: 'visits',type:'float'},
{name: 'views',type:'float'} ])});
store.load();
// extra extra simple
new Ext.Panel({
title: 'ExtJS.com Visits Trend',
applyTo: 'container',
width:500,
height:300,
layout:'fit',
items:{
xtype: 'linechart',
store: store,
xField: 'name',
listeners: {
itemclick: function(o){
var rec = store.getAt(o.index);
Ext.example.msg('Item Selected', 'You chose {0}.', rec.get('name')); } },
series: [{//列
type: 'line', //类型可以改变(线)
displayName: 'Visits',
yField: 'visits',
style: {
color:0xE1E100
}
}] } });});