这是代码:
HTML:
<body onload="initializeMap()">
<div id="map_canvas" style="width:100%; height:100%; z-index:1"></div>
<canvas id="control" style="width:100%; height:100%; z-index:2">Does Not Support Canvas Element</canvas>
</body>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
绘制函数是在谷歌地图初始化后调用的,所以 DOM 应该已经加载了,对吗?我可能做错了什么?
draw当调用该函数时,DOM 已经被加载,这是正确的。
但var canvas = document.getElementById('control');-line 在此之前被评估,因为它不在 -function 中draw。<head>它在元素渲染之前立即在文档中执行。
我建议你将 init 函数更改为类似的东西
var canvas,context;
function initializeMap() {
canvas = document.getElementById('control');
context = canvas.getContext('2d');
}
Run Code Online (Sandbox Code Playgroud)