我的网络应用程序在Firefox或Chrome上正常工作,但在IE中则不行.它向我显示以下消息:
Object doesn’t support this property or method
File: ext-all.js – Line: 7 – Char: 6100
任何想法如何解决它?
顺便说一句:我正在使用ext 3.4.
编辑:我所有的ext布局创建者代码:
Ext.onReady(function() { var viewport = new Ext.Viewport({ layout: 'border',renderTo: document.body,items: [{ region: 'north',height: 25,xtype: 'toolbar',items: [{ xtype: 'button',text: 'Início',iconCls: 'home',handler:function() { var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Início',closable:true,iconCls:'home' }).show(); } },{ xtype: 'button',text: 'Sistema',iconCls: 'sistema',menu: { items: [{ text: 'Usuários',iconCls: 'usuario',handler: function(){ },menu: { items: [{ text: 'Teste1',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Teste1',autoLoad: 'iframe.PHP?url=index.PHP',iconCls: 'usuario' }).show(); } },{ text: 'Teste2',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Teste2',iconCls: 'usuario' }).show(); } }] } },{ text: 'Configurações',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Configurações',autoLoad: 'iframe.PHP?url=form.PHP',iconCls: 'sistema' }).show(); } },{ text: 'Relatório Vertical',iconCls: 'relatorio',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Relatório Vertical',autoLoad: 'iframe.PHP?url=relatorio_v.PHP',iconCls: 'relatorio' }).show(); } },{ text: 'Relatório Horizontal',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Relatório Horizontal',autoLoad: 'iframe.PHP?url=relatorio_h.PHP',iconCls: 'relatorio' }).show(); } },'-',{ text: 'Sair',iconCls: 'logoff',handler: function(){ location.reload() } }] } },{ xtype: 'button',text: 'Abas',iconCls: 'abas',menu: { items: [{ text: 'Criar nova Aba',iconCls: 'tab_add',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Nova Aba',html: 'Tab Body',iconCls: 'tab_add' }).show() } },{ text: 'Ir para a primeira Aba',iconCls: 'tab_go',handler: function(){ tabs.setActiveTab(0); } },{ text: 'Excluir 2a Aba',iconCls: 'tab_delete',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); if (tabs.get(1)) { var tab = tabs.get(1); tabs.remove(tab); } } }] } },text: 'Menus',menu: { items: [{ text: 'Sub-menus com título dif.',menu: { items: ['Título do Sub-menu',{ text: 'Sub-menu #1',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Sub-menu #1',autoLoad: 'iframe.PHP?url=PHPinfo.PHP',iconCls: 'usuario' }).show(); } },{ text: 'Sub-menu #2',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Sub-menu #2',iconCls: 'usuario' }).show(); } }] } },{ text: 'Sub-menus com título igual',menu: { items: ['Sub-menus com título igual',{ text: 'Sub-menu #1',handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Sub-menu #1',iconCls: 'usuario' }).show(); } },handler: function(){ var tabs = Ext.getCmp('dynamic-tabs'); tabs.add({ title: 'Sub-menu #2',iconCls: 'usuario' }).show(); } }] } },{ text: 'Sub-menus sem título',menu: { items: [{ text: 'Sub-menu #1',iconCls: 'usuario' }).show(); } }] } },{ text: 'Sub-menu grande',menu: { items: [{ text: 'Nível #1',menu: { items: [{ text: 'Nível #2',menu: { items: [{ text: 'Nível #3',menu: { items: [{ text: 'Nível #4 e etc...',handler: function(){ } }] } }] } }] } }] } }] } }] },{ region: 'center',xtype: 'tabpanel',id: 'dynamic-tabs',items: [{ title: 'Início',iconCls:'home' }] },{ region: 'south',id: 'barra',items: [{ xtype: 'tbtext',text: 'Pacific Tecnologia da Informação © 2011',html: '<img src=\'imagens/logo_peq.png\' />' }] }] }); var tabs = Ext.getCmp('dynamic-tabs'); tabs.setActiveTab(0); });
这是一个简单的示例菜单.我在IE 8中进行了测试,并在兼容模式下模拟了7.
有趣的观察:在Firefox中,firebug的控制台显示:
<html xmlns="http://www.w3.org/1999/xhtml" class=" x-viewport"> <head></head> <body id="ext-gen5" class=" ext-gecko ext-gecko3 x-border-layout-ct"> etc...
IE的开发者工具显示:
<html class=" x-quirks ext-border-Box x-viewport"> <head> <title></title> <body class=" ext-ie ext-ie7 x-border-layout-ct" id="ext-gen5" scroll="no"> Texto - DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" Texto - Nó de Texto Vazio <Meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script language="javascript" src="js/ext/adapter/ext/ext-base.js" type="text/javascript"></script> etc...
我的HTML文件:
<!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"> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" language="javascript" src="js/ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" language="javascript" src="js/ext/ext-all-debug.js"></script> <script type="text/javascript" language="javascript" src="js/menu.js.PHP"></script> <script type="text/javascript" language="javascript" src="js/layout.js.PHP"></script> <link rel="stylesheet" type="text/css" href="js/ext/resources/css/ext-all.css" /> <link rel="stylesheet" type="text/css" href="js/ext/resources/css/xtheme-blue.css" /> <link rel="stylesheet" type="text/css" href="css/menu.css" /> <link rel="stylesheet" type="text/css" href="css/layout.css" /> <link rel="stylesheet" type="text/css" href="css/icones.css.PHP" /></head> <body> </body> </html>
解决方法
我之前有过这个错误.在我的情况下,我有一个名为location的实体,ext从中创建了一个对象.现在,IE使用了JS本地位置对象,并尝试在其上执行方法.该错误看起来与您的错误大致相同.
使用IE开发人员工具栏并调试代码以识别确切的对象.这就是我解决这个问题的方法!
编辑基于新的演示代码:
您的HTML文件应该以
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />