Javascript和IE9的问题

时间:2012-09-05 14:33:45

标签: javascript extjs internet-explorer-9

我有这个javascript代码来显示启动网站的消息:

Ext.onReady(function(){
    Ext.MessageBox.show({
        title:'Welcome to Site',
        msg:'Welcome to this website!.',
        buttons:Ext.MessageBox.OK,
        icon:Ext.MessageBox.INFO
    });
});

它在Firefox和Chrome中运行良好,但在Internet Explorer 9中显示效果不佳。有关如何解决问题的想法吗?

2 个答案:

答案 0 :(得分:0)

您的代码片段似乎在Chrome和IE9中产生相同的效果。请查看以下

Test results http://i50.tinypic.com/14vdzo.png

你能上传你正在观察的照片吗?

答案 1 :(得分:0)

问题可能是由于需要对Ext.js进行版本升级。

3.4之前的版本存在浏览器版本嗅探或时间错误,导致Ext.onReady无法正确确定何时发生该事件。

Internet Explorer 9抛出的一个特定错误是传递的null或未定义的对象:

  

SCRIPT5007:无法获取属性“addClass”的值:object为null或undefined

来自以下代码段:

<script type="text/javascript">
//<![CDATA[
    Ext.onReady(function() {
        var tabs = new Ext.ux.Tabs('tabs',
            activeTab: 'tab-description'
        });
    });
//]]>
</script>

这是一个非常简单的选项卡面板,除了IE 9之外的所有内容都可以工作并且失败,因为它抱怨'tabs'无法传递给Ext代码中的以下代码:

constructor : function(element, config) {
    Ext.apply(this, config);
    Ext.ux.Tabs.superclass.constructor.call(this);

    this.addEvents(
        'beforetabchange',
        'tabchange'
    );

    this.el = Ext.get(element);
    this.init();
},

init : function() {
    var me = this;

    this.el.addClass('ux-tabs-container');

因此this.el = Ext.get(element);无法找到标识为tabs的元素并导致this.el.addClass('ux-tabs-container');死亡。

如果有人想让老版本临时解决这个问题,请随时发表评论。