获得面板体型extjs6

时间:2016-12-07 13:40:49

标签: javascript extjs styles

new Ext.Panel({
        layout: 'absolute',
        id: 'mainPanel',
        border: false,
        bodyStyle: "background-image:url(wall.jpg) !important"
});

console.log(Ext.getCmp('mainPanel').getStyle());

我尝试使用getStyle()方法获取正文样式但在控制台上出现错误

  

未捕获的TypeError:对象[object Object]没有方法' getStyle'

然而getStyle是面板方法之一,但为什么会出现此错误或任何人都可以更正我的代码?感谢

2 个答案:

答案 0 :(得分:2)

new Ext.Panel({
        layout: 'absolute',
        id: 'mainPanel',
        border: false,
        bodyStyle: "background-image:url(wall.jpg) !important"
});

console.log(Ext.getCmp('mainPanel').getBodyStyle());

属性bodyStyle默认情况下应该有一个getter和一个setter,我无法理解你正在使用哪个ext,所以如果get方法不起作用,你只需要像这样分配bodyStyle。

console.log(Ext.getCmp('mainPanel').bodyStyle);

如果你想获得分配给dom属性的值,你可以这样做:

console.log(Ext.fly('mainPanel-body').style.backgroundImage);

Ext.fly返回'mainPanel-body'的HTML元素,它是面板的主体。

答案 1 :(得分:2)

您需要使用bodyStyle面板对象属性。这样它几乎可以在 ExtJS 的所有版本上使用。



Ext.application({
    name: 'Fiddle',

    launch: function () {

        var panel = Ext.create('Ext.panel.Panel', {
            title: 'Hello',
            width: 200,
            html: '<p>World!</p>',
            layout: 'absolute',
            id: 'mainPanel',
            border: false,
            bodyStyle: "background-image:url(wall.jpg) !important",
            renderTo: Ext.getBody()
        });
        console.log(Ext.getCmp('mainPanel').bodyStyle);
    }
});
&#13;
<script src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script>

<link type="text/css" rel="stylesheet" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css")/>
&#13;
&#13;
&#13;