javascript – 仅限Ext Js IE错误

前端之家收集整理的这篇文章主要介绍了javascript – 仅限Ext Js IE错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的网络应用程序在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" />

我从未对这些设置有任何问题.调试器可能看起来不同,因为ExtJS将在运行时添加类,但这应该是您的源HTML文件.

原文链接:/js/240838.html

猜你在找的JavaScript相关文章