【问题标题】:IE10 Extjs 4.1.0 insertSibling doesnt work correctlyIE10 Extjs 4.1.0 插入同级无法正常工作
【发布时间】:2015-02-11 09:08:09
【问题描述】:

我有以下一段代码:

        var messageWrapper = {
            tag: 'div'
        };

        var messageEl = cmp.errorEl.insertSibling(messageWrapper, "after");
        cmp.messageEl = messageEl;

        Ext.Array.each(me.displayProperties, function (property) {
            var propertyConfig = {
                tag: 'div',
                style: {
                    display: 'none'
                }
            };
            var newElement = messageEl.insertSibling(propertyConfig, "after");
            newElement.addCls(property.classes);

            var changeListener = me.buildChangeListener(newElement, property.name);
            cmp.addListener('change', changeListener);
        });

以前在 ExtJs 4.0.7 下可以正常工作,在 chrome 下仍然可以正常工作。

问题是 cmp.errorEl.insertSibling(messageWrapper, "after") 在 IE 下返回 null,我可以添加额外的 true 参数 - 然后我会收到 dom 对象,但我不会能够使用 extjs 功能。

你知道我该如何解决它吗?

小提琴位于:https://fiddle.sencha.com/#fiddle/f1a

【问题讨论】:

  • 哪个版本的 IE 不工作?尽可能提供煎茶小提琴
  • fiddle 添加,IE 10(模式 8),extjs 4.1.0

标签: javascript extjs extjs4


【解决方案1】:

ExtJS 4.1.0 框架的 Ext.dom.Helper(ietable 方法)有一个 bug。 应用此覆盖来修复它:

(function() {

// kill repeat to save bytes
var detachedDiv = document.createElement('div');

    Ext.define('Ext.override.dom.Helper', {
        override: 'Ext.dom.AbstractHelper',

        ieTable: function(depth, openingTags, htmlContent, closingTags){
            detachedDiv.innerHTML = [openingTags, htmlContent, closingTags].join('');

            var i = -1,
                el = detachedDiv,
                ns;
            while (++i < depth) {
                el = el.firstChild;
            }
            // If the result is multiple siblings, then encapsulate them into one fragment.
            ns = el.nextSibling;

            if (ns) {
                el = document.createDocumentFragment();
                while (ns) {
                    el.appendChild(ns);
                    ns = ns.nextSibling;
                }
            }
            return el;
        }

    }, function() {
        Ext.ns('Ext.core');
        Ext.DomHelper = Ext.core.DomHelper = new this;
    });

}());

小提琴:https://fiddle.sencha.com/#fiddle/f1v

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-05
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多