Html 5 canvas getElementById()返回null/未定义
代码如下: HTML:Html 5 canvas getElementById()返回null/未定义,html,html5-canvas,Html,Html5 Canvas,代码如下: HTML: 不支持画布元素 Javascript: <script type="text/javascript"> var canvas = document.getElementById('control'); var context = canvas.getContext('2d'); function draw(){ context.font = "bold 12px sans-serif"; conte
不支持画布元素
Javascript:
<script type="text/javascript">
var canvas = document.getElementById('control');
var context = canvas.getContext('2d');
function draw(){
context.font = "bold 12px sans-serif";
context.fillText("x", 248, 43);
}
</script>
var canvas=document.getElementById('control');
var context=canvas.getContext('2d');
函数绘图(){
context.font=“bold 12px无衬线”;
上下文。填充文本(“x”,248,43);
}
draw函数在GoogleMap初始化之后调用,所以DOM应该已经加载了,对吗?我可能做错了什么?如果在
主体之前加载了javascript
,那么画布将未定义,因为浏览器尚未加载/渲染它。调用draw
-函数时,DOM已经加载,这是正确的
但是var canvas=document.getElementById('control')代码>-行在此之前进行求值,因为它不在draw
-函数中。在呈现元素之前,它会立即在文档的
中执行
我建议您将init函数更改为类似的函数
var canvas,context;
function initializeMap() {
canvas = document.getElementById('control');
context = canvas.getContext('2d');
}
它在标签上,但函数被调用。它不应该正常工作吗?有什么例子吗?我没有看到函数,我设置了一个变量settervar canvas=doucment.get…('control')代码>当浏览器在头部运行javascript时,没有文档。javascript在上声明,但在加载文档后调用函数draw(),这很好。可能会重复
var canvas,context;
function initializeMap() {
canvas = document.getElementById('control');
context = canvas.getContext('2d');
}