外部文件中的JavaScript未在页面加载时运行

时间:2014-03-02 21:25:35

标签: javascript html

我不懂js的一件事。如果我有我的.js文件和HTML,我有以下代码:

<head>
    <script src="skrypt.js"></script>
 </head>

<body>
    Content
</body>

这是否意味着在第一次执行时我的skrypt.js会被执行?

因为当我在我的skrypt.js代码中时:

document.write("HelloWorld")

输出是“HelloWorld”但是当我在skrypt.js中时:

    var canvas = document.getElementById("canvas");
    var context = canvas.getContext("2d");

    context.fillStyle = "red";
    context.fillRect(0, 0, 300, 300);

页面为空白,我必须使用事件:

<body onload="drawCanvas();">
</body>

其中drawCanvas()具有与外部.js文件相同的代码。

那么为什么document.write正在工作而canvas不是???

1 个答案:

答案 0 :(得分:0)

在DOM准备好之前处理头部加载的JavaScript文件。你需要在window.onload中包装你的函数,在页面加载后在别处调用它,或者把外部文件调用放在页面文档的底部,就在结束体标记之前。