从Ajax请求执行内联脚本
execute inline script from Ajax request
在我的应用程序主页上,我建立了一个" 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中不行。
是否有一个标志或你需要激活内联代码被执行?
发现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 );
相关文章:
- 在服务器端脚本执行后关闭选项卡
- 脚本执行多次
- 根据屏幕大小阻止脚本执行
- 检测TAB键并使脚本执行成为条件
- 脚本执行,但代码隐藏不执行
- 如何使用应用程序脚本执行API从谷歌工作表中提取数据
- 为什么设置window.location.htm不会停止脚本执行
- document.write(“anything”) 不会在 Internet Explorer 中作为外部脚本执行
- Extjs4 和 IE8 :选项卡上的 beforeclose 事件会抛出“无法从释放的脚本执行代码”
- 具有 asyc 属性的脚本仍会阻止其他脚本执行
- 如何在特定行暂停 JS 脚本执行
- JavaScript - 在高负载脚本执行之前绘制 html-mask
- 重新加载 Chrome 扩展程序内容脚本执行环境
- 将脚本执行保留在新打开的页面中
- 在脚本执行结束时关闭弹出窗口
- JavaScript 脚本执行时间太长.获取脚本需要太长时间提示
- 为什么 url 中的“#”会阻止 jquery 脚本执行
- 脚本执行两次,但时间戳相同
- Javascript setTimeout 会停止其他脚本执行吗?
- jQuery 在单击事件中的 if 条件后停止脚本执行