我的网络应用程序在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" />