有没有办法查询dojo dijit来判断dijit的DOM是否已完成加载?确定dijit的DOM是否已完成加载
1
A
回答
1
我相信这样的事情可能的工作,虽然我没有测试它:
if (yourWidget.domNode) {
// here your widget has been rendered, but not necessarily its child widgets
} else {
// here the domNode hasn't been defined yet, so the widget is not ready
}
Dijit的小部件绘制是通过扩展点来处理,称为按顺序:
- postMixinProperties
- buildRendering
- postCreate < ==此时,您的小部件已经变成HTML并插入到页面中,你可以访问像this.domNode这样的属性。然而,没有一个子控件已经照顾
- 启动的:这就是所谓的,所有的子控件已经制定
后的最后一个扩展点(这是小部件的生命周期上的解释“掌握道场”)。
例:
<html>
<head>
<script src="path/to/your/dojo/dojo.js" djConfig="parseOnLoad: true, isDebug: true"></script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dojox.lang.aspect");
dojo.require("dijit.form.Button");
// Define your aspects
var startupAspect = {
before : function() {console.debug("About to execute the startup extension point");},
after : function() {console.debug("Finished invoking the startup extension point");},
};
function traceWidget(theWidget) {
// Attach the aspect to the advised method
dojox.lang.aspect.advise(theWidget, "startup", startupAspect);
}
</script>
</head>
<body>
<button dojoType="dijit.form.Button" type=button">
dijitWidget
<script type="dojo/method" event="postCreate">
traceWidget(this);
</script>
<script type="dojo/method" event="startup">
console.debug("Inside startup");
</script>
</button>
</body>
</html>
3
我相信如果设置了dijit的“domNode”属性,则创建了该窗口小部件的DOM。该小部件可能会或可能不会连接到较大的DOM,这可能是一个单独的步骤。检查domNode.parentNode是一个真正的元素可能会有所帮助,但不能保证parentNode也处于活动文档中。
相关问题
- 1. 如何确定dojo网格是否已完成加载?
- 2. 确定javascript是否已完成
- 3. 确定AutoBoxing是否已完成
- 4. 检查iframe是否已完成加载?
- 5. 如何确定文件是否已完成python下载
- 6. 如何确定UIView是否已加载
- 7. 如何确定CKEditor是否已加载?
- 8. 如何确定是否SkinnableComponent已完成添加部件?
- 9. 从iframe内部,如何确定父页面是否已完成加载?
- 10. DOM加载完成后
- 11. 如何确定UserControl已完全加载?
- 12. 在DOM加载之前Ajax调用是否可以完成?
- 13. 监听指令已完成在DOM中的加载 - AngularJS
- 14. javascript代码,以确保iframe是否已完全加载
- 15. 如何检测load()加载的元素是否已完成加载?
- 16. 如何确定装配是否已经完成?
- 17. 确定mdworker(Spotlight)是否已完成第一次扫描
- 18. 如何判断用户控件是否已完成加载vb6
- 19. Google Web Designer:检查initAd()是否已完成加载
- 20. 检查蟒蛇urlopen是否已完成加载
- 21. 如何知道窗口是否已完成加载?
- 22. 检查多个WebViews是否已完成加载
- 23. 如何检查iframe是否已完成加载
- 24. 如何知道WebBrowser是否已完成加载页面?
- 25. Javascript检查所有点击是否已完成加载元素
- 26. 确定ping是否已成功发送
- 27. Javascript:检测已设置为SRC的图像是否已完成加载?
- 28. 如何确定AVM1Movie是否完成?
- 29. 是否有确定的JavaScript(而不是jQuery)方法来检查网页是否已完全加载?
- 30. 锁是否正确完成
谢谢!我得到尽可能postCreate,看起来像我“启动”是我正在寻找的回调。我会去尝试一下,看看我能看到什么。 “掌握Dojo”是一本很棒的书,但是,我仍然发现它缺少一些关键信息。但是,使用像dojo这样广泛的JS框架,我相信很难将所有信息都整合到一本书中。 – 2010-03-10 13:01:00
如果要测试的是启动扩展点已执行或未执行,maybie可以尝试AOP(请参阅http://lazutkin.com/blog/2008/may/18/aop-aspect-javascript -dojo /和http://www.dojotoolkit.org/api/dojox/lang/oo/aop.html)。我会尝试用“之后”或“返回后”的建议 – Philippe 2010-03-10 13:06:45
哇...我想我每天都越来越喜欢道场... – 2010-03-10 13:10:57