【发布时间】:2012-02-27 11:05:50
【问题描述】:
我正在尝试使用 Javascript 将画布添加到原本没有画布的页面。 我正在尝试执行以下操作:
var canv=document.createElement("canvas");
canv.setAttribute("id", "canvasID");
alert(canv.id);
var c=document.getElementById("canvasID");
alert(c.id);
问题是第一个alert(canv.id) 结果是canvasID,而第二个alert 是未定义的,因为c 为null。
谁能告诉我我做错了什么?
PS:代码设计为在 Greasemonkey 下运行,因此在 HTML 本身中添加画布及其 ID 不是一个可行的选择。
【问题讨论】:
-
您没有将
canv添加到 DOM。此外,您不必通过其 ID 获取画布,因为它已在canv中引用。 -
我试图通过 id 获取画布作为某种“证明”画布已正确添加。 “您没有将 canv 添加到 DOM”是什么意思。 ?
-
画布只是漂浮在太空中。它需要附加到 DOM,比如
document.body.appendChild(canv);,才能解决问题。 -
DOM 是网页的实际 HTML 结构。您必须使用
appendChild()之类的函数将您的画布元素添加到 DOM。例如,要将其添加到div#myDiv,您可以编写以下代码:document.getElementById('myDiv').appendChild(canv)。 -
@Vadzim,我不知道你是否想编辑所有html5-canvas,但这个甚至与这个标签无关......另外,如果你阅读当前canvas 的摘录,您会注意到它应该只引用 html5-canvas。相关:这个meta-post和this one
标签: javascript html canvas html5-canvas add