在我的应用程序主页上,我构建了一个“widgets”系统。widgets的源代码由服务器端生成,并通过Ajax推送到客户端。
Ext.Ajax.request({
url: '/get-widgets',
success: function( response ) {
var boxes = Ext.decode( response.responseText );
Ext.each( boxes, function( box ) {
box.id = 'cell-' + box.cell;
var element = Ext.DomHelper.append( 'canvas', {
tag: 'div',
id: box.id,
cls: 'widget size-' + ( box.size || '11' ),
children: [{
tag: 'div',
cls: 'title',
html: box.title
}, {
tag: 'div',
cls: 'main',
html: box.body
}]
}, true );
});
}
});问题是,一些小部件的主体中有一些需要执行的内联Javascript。这在Firefox中很好用,但在Chrome中就不行了。
要执行内联代码,有没有需要激活的标志或东西?
发布于 2011-09-23 18:22:35
发现Ext.Element::update()方法提供了一个用于扫描和执行内联脚本的标志。我按如下所示更改了代码以使用此方法:
var element = Ext.DomHelper.append( 'canvas', {
tag: 'div',
id: box.id,
cls: 'widget size-' + ( box.size || '11' ) + ' ' + ( box.cls || '' ) + ' ' + ( box.type || '' ),
children: [{
tag: 'div',
cls: 'title',
html: box.title
}, {
id: box.id + '-body',
tag: 'div',
cls: 'main'
}]
}, true );
Ext.get( box.id + '-body' ).update( box.body, true );https://stackoverflow.com/questions/7527403
复制相似问题