我正在使用{{=LOAD(...)}}
在我的web2py页面中注入一个组件,如http://web2py.com/books/default/chapter/29/12/components-and-plugins#LOAD所述,但是我需要在组件加载完成后触发一些JavaScript。通常情况下,如果通过ajax加载某个东西,则会有成功的回调。如何在web2py中通过{{=LOAD(...)}}
设置其中一个?web2py:如何检测一个LOAD组件通过ajax加载?
0
A
回答
2
最简单的方法是设置response.js
在组件的控制器:
def mycomponent():
response.js = 'alert("mycomponent just loaded");'
return dict()
或者,你可以简单地包括<script>
标签直接在组件本身,该组件被加载时,将执行。
最后,每当web2py Ajax调用完成时,就会触发一个ajax:complete
事件。所以,你可以设置一个事件处理程序,并检查Ajax响应是否是一个组件:
$(document).on('ajax:complete', function(e, xhr, status) {
if (xhr.getResponseHeader('web2py-component-content')) {
alert('A component just loaded.');
}
});
注意,web2py-component-content
头的存在表明Ajax响应是一个组件。
最后这个方法唯一的缺点是,事件处理程序将被触发前组件的内容添加到DOM,所以如果事件处理程序需要长时间运行,它可以显着拖延的外观组件内容。
相关问题
- 1. 通过LOAD监测组件
- 2. Jquery Live Load - 通过ajax加载表单
- 3. 如何通过ajax加载文件?
- 4. 如何在硒中检测是否通过ajax加载JavaScript文件?
- 5. jQuery的:如何检测通过一个Ajax请求
- 6. 通过ajax添加jQuery检测元素
- 7. Visualforce在页面加载时通过ajax加载apex组件
- 8. 检测页面加载 - ajax
- 9. 如何通过Ajax和Javascript加载一个ruby变量?
- 10. 如何检测DIV高度它的内容是通过AJAX加载使用jQuery
- 11. highcharts如何通过ajax加载数据
- 12. 通过JQuery Load加载谷歌地图?
- 13. 通过jquery load()重新加载内容;
- 14. 通过jQuery检测图片加载
- 15. 如何检测load()加载的元素是否已完成加载?
- 16. 当通过iframe下载文件时检测iframe加载
- 17. 检测哪个URL从onclick通过AJAX/Jquery加载适当的内容
- 18. Ajax通过jquery加载swf文件
- 19. 如何选择通过jQuery load()函数加载的元素?
- 20. 通过Ajax加载Google Visualization
- 21. jstree - 通过ajax加载contextmenu
- 22. 加载sonata_type_colletion场通过AJAX
- 23. 通过jQuery加载javascript ajax
- 24. 如何检测通过JavaScript
- 25. MVC如何检测通过
- 26. 通过AJAX调用将数据加载到Knockout组件
- 27. 如何确保数据在渲染ReactJS组件之前已通过AJAX加载?
- 28. jquery事件不会触发通过load加载的内容()
- 29. 通过ajax下载文件
- 30. 通过AJAX从通过ajax加载的页面加载特定的html内容
我想在客户端加载后修改DOM(突出显示一行)。 response.js工作正常,除非组件视图被缓存。在这种情况下,它不会被发送。 ajax:complete会得到触发器,但正如你所提到的,它在内容被添加到DOM之前运行*。这解除了我的修改。有没有办法在应用内容之前修改内容? – sherve