【问题标题】:Issues with Javascript and IE9Javascript 和 IE9 的问题
【发布时间】:2012-09-05 14:33:45
【问题描述】:

我有这个 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 中显示不佳。关于如何解决此问题的任何想法?

【问题讨论】:

  • 不显示文本,只创建一个带有 yes, no cancel in 的窗口.....
  • 如果它不在 IE 中运行,那么它会报错? if give and error 什么样的错误?
  • 在IE下运行,只是消息框显示不正确。
  • 你用的是什么版本的 Extjs?
  • 可能是 CSS 问题?仅凭此信息很难说。请发布重现问题的 jsfiddle.net 链接。

标签: javascript extjs internet-explorer-9


【解决方案1】:

这个问题可能是因为需要对Ext.js进行版本升级。

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

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

SCRIPT5007:无法获取属性“addClass”的值:对象为空或未定义

从代码 sn-ps 如下:

<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'); 死亡。

如果有人想通过获取旧版本来临时解决此问题,请随时发表评论。

【讨论】:

    【解决方案2】:

    您的 sn-p 代码似乎在 Chrome 和 IE9 中产生了相同的结果。检查下面

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

    【讨论】:

    • 没有足够的代表在上面发表评论,因此将其发布为答案!对不起!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多