【发布时间】:2017-10-30 11:22:25
【问题描述】:
我想在我的 gwt 代码中创建一个画布元素。随后,我想应用第三方 javascript 库以便在新创建的画布 dom 元素上进行绘制。所以这是我想做的粗略想法:
public void onModuleLoad() {
Canvas canvas = Canvas.createIfSupported();
canvas.getElement().setId("canvas");
canvas.setWidth("800px");
canvas.setHeight("500px");
canvas.getElement().getStyle().setProperty("border", "black solid 1px");
RootPanel.get("rootDiv").clear();
RootPanel.get("rootDiv").add(canvas);
getCanvas();
上面的代码创建了一个新的 canvas 元素并将它添加到我当前的 dom 中。添加新画布后,我想应用 JSNI 来获取此画布元素。
public static native void getCanvas() /*-{
console.log("Canvas? = " + document.getElementById("canvas"));
}-*/;
现在,我希望我找到了这个画布元素。但是,相反,我在控制台上得到以下输出:
Canvas? = null
为什么我无法访问我的新元素?
顺便说一句:当我在 Chrome 的检查器中检查 DOM 时,我可以看到添加的带有指定 ID 的画布元素。
【问题讨论】:
标签: javascript gwt jsni