【发布时间】:2011-10-04 23:10:11
【问题描述】:
我是使用 jQuery 创建应用程序的新手,但我对 Javascript 非常熟悉。好吧,我想做的是使用 Javascript getElementById 在 html5 画布中绘制图像。我的代码是:
包括jQuery和JQuery mobile:
<link rel="stylesheet" type="text/css" href="lib/jquery.mobile-1.0b1.min.css" />
<script type="text/javascript" src="lib/jquery-1.6.1.js"></script>
<script type="text/javascript" src="lib/jquery.mobile-1.0b1.min.js"></script>
有问题的代码:
<div data-role="content">
<!--//TO DO canvas drawing-->
<canvas id="draw_area" width="295px" height = "390px"></canvas>
...
<script type="text/javascript">
var canvas = getElementById("draw_area");
var context = canvas.getContext('2d');
var map = new Image();
map.src = "./imgs/home_screen1.png";
map.onload = function (){
context.drawImage (map, 0, 0);
};
</script>
我还注意到我无法使用
<body onload = "aFunction();">
不是任何其他 Javascript 事件,例如“onclick”。
我做错了吗?
【问题讨论】:
-
aFunction()是什么?你用的是什么浏览器? -
那么,究竟,“问题”是什么? IE。你预计会发生什么,实际会发生什么?您收到任何错误消息吗?
-
@RobG:问题是有无效的脚本阻止后续脚本的执行。错误应该是 Uncaught ReferenceError: getElementById is not defined 在控制台中。
-
该脚本中的错误不一定会阻止其他脚本在其他脚本元素中运行或主体的 onload 处理程序运行。也许 OP 的 load 函数依赖于失败代码的结果,谁知道呢?
-
@RobG:抱歉,Rob,你是对的。
getElementById问题将阻止 该块中 的其余脚本运行,但它本身并不能解释为什么在加载时不调用aFunction()。
标签: javascript jquery html5-canvas dom-events