1

パネルへのドラッグ アンド ドロップを行っています。IE8、Chrome、および Firefox では正常に動作していますが、Ie7 ではこのエラーが発生します - 「'offsetWidth' は null またはオブジェクトではありません」

私がデバッグしているとき、それは次のコードを指しています、

    getLocation: function (i) {
        if (!this.isTypeOfDD(i))
        { return null }
        if (i.getRegion)
        { return i.getRegion() }
        var g = i.getEl(), m, d, c, o, n, p, a, k, h;
        try { m = Ext.Element.getXY(g) }
        catch (j) { }
        if (!m) { return null }
        d = m[0];
        c = d + g.offsetWidth;
        o = m[1];
        n = o + g.offsetHeight;
        p = o - i.padding[0];
        a = c + i.padding[1];
        k = n + i.padding[2];
        h = d - i.padding[3];
        return new Ext.util.Region(p, a, k, h)
    }

特に g.offsetWidth に対して、g も未定義であり、i は「Ext.dd.DropZone」タイプであり、たまにしか発生しません。私はそれを奇妙にしようとしています。それまでの間、誰かが手がかりを持っている場合は、私と共有してください。事前の感謝

4

1 に答える 1

1

条件チェックを追加することでこれを解決しました。この時点までは正常に動作しています。

getLocation: function (i) {
    if (!this.isTypeOfDD(i))
    { return null }
    if (i.getRegion)
    { return i.getRegion() }
    var g = i.getEl(), m, d, c, o, n, p, a, k, h;
    if(g!=null){
    try { m = Ext.Element.getXY(g) }
    catch (j) { }
    if (!m) { return null }
    d = m[0];
    c = d + g.offsetWidth;
    o = m[1];
    n = o + g.offsetHeight;
    p = o - i.padding[0];
    a = c + i.padding[1];
    k = n + i.padding[2];
    h = d - i.padding[3];       
    return new Ext.util.Region(p, a, k, h)
    }
}
于 2012-07-03T09:52:46.950 に答える