2012-01-09 18 views
0

剛剛完成我的第一本JavaScript書籍「Head First HTML5」,我感覺非常愚蠢。如果我將腳本放在HTML文件中,但它不能在單獨的JavaScript文件中工作。畫布可以在HTML文件中使用,但不能使用JavaScript文件

HTML文件:

<!DOCTYPE html> 
<head> 
<meta charset="UTF-8"> 
<script src="canArt.js"></script> 
</head> 
<body> 
<canvas id="canvas" width="800" height="800"></canvas> 
</body> 
</head> 

JS文件:

window.onload = init(); 
function init() { 
var canvas = document.getElementById("canvas"); 
var ctx = canvas.getContext("2d"); 

ctx.fillStyle = "rgb(200,0,0)"; 
ctx.fillRect (10, 10, 55, 50); 

ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; 
ctx.fillRect (30, 30, 55, 50); 
} 

請幫助。

回答

3

你立即執行由包括括號和分配的init的結果,這是什麼,到onload處理程序init功能...

變化:

window.onload = init(); 

到:

window.onload = init; 

http://jsfiddle.net/sFmNw/

+0

換句話說,''init();'立即執行init函數並將其返回值賦給window.onload,同時指出'= init;'將函數本身賦值爲onload處理函數。 – 2012-01-09 02:38:16

+0

<手到額頭>哇,不能相信我錯過了,謝謝。 – bender850 2012-01-09 02:44:05

+0

而且,感謝網站。 – bender850 2012-01-09 02:45:16

相關問題