【发布时间】:2013-08-07 09:30:10
【问题描述】:
我正在尝试将自定义 javascript 库与我的 SmartGWT 项目集成。
我的页面区域通过按钮单击动态加载,因此在 Java 代码中我有类似以下伪代码的内容:
button . onClick {
contextArea = new contextAreaTypeA()
}
所以我的 contextAreaTypeA 已创建,我想在构造函数中创建一系列 div 元素,为它们分配 ID,然后在我的自定义库中调用一个函数,将内容加载到这些 div 中。
SmartGWT 摆脱了获取 ID 或在页面中的任何元素上设置 ID 的任何方式,要在元素上创建 ID,您必须创建自己的小部件并覆盖 getInnerHtml 或创建类似 HTMLFlow 的东西并添加myflow.setContent('<div id="myID" ></div>'); 之类的内容,我就是这样做的。
我的问题是,在构造函数中执行此操作意味着当我调用带有 ID 的自定义 javascript 函数时,我创建的这个 div 似乎还没有附加到 dom,所以我总是得到一个空指针。
由于我的模块和文档已加载,并且此内容正在动态添加,因此我无法调用文档就绪或 onModuleLoad,因此我应该如何以及何时检测我的 div 的负载以及何时可以安全访问来自 JSNI 调用中的 div?
我尝试了多种方法,例如添加附加处理程序(它们似乎从未被调用),我尝试将绘制处理程序添加到 HTMLFlow,但它们似乎在绘制 htmlflow div 之后但在实际绘制内容之前被调用.我曾尝试在 HTMLFlow() 上调用重绘,但这似乎根本没有调用 onDraw 方法。
我不知道如何将这个库与我的 SmartGWT 集成,如果有人能提出更好的(或任何)方法,那就太好了。
【问题讨论】:
标签: javascript html gwt smartgwt