Javascript在头部不起作用

时间:2014-02-02 17:51:47

标签: javascript html

鉴于此html代码,我们不允许编辑

<!doctype html>
<html manifest="survey.manifest">
<head>
    <title>Offline Survey Application</title>
    <link rel="stylesheet" href="styles/survey.css" type="text/css">
    <script type="text/javascript" src="scripts/survey.js"></script>
</head>
<body>
   <!--should be empty --->
</body>
</html>

<!-- YOU ARE NOT ALLOWED TO EDIT THIS FILE!!! -->

我似乎无法让我的javascript工作。但是,如果我将脚本元素放在主体上,则会显示整个脚本。问题是我们不允许这样做。有没有其他方法可以使它工作?

编辑:我知道脚本在加载其他元素之前运行。我不能把它移到别处,因为文件会被修改:/

2 个答案:

答案 0 :(得分:5)

这可能是因为脚本仅在页面加载完成后才起作用,但是通过将代码放在head中,您首先加载脚本。要解决这个问题,您可以尝试使用以下代码替换当前的脚本代码:

<script type="text/javascript" src="scripts/survey.js" defer></script>

这可确保代码仅在页面加载完成后加载。

答案 1 :(得分:2)

据推测,您的脚本正在尝试修改DOM并尝试访问body元素。

在最初加载并运行脚本时,正文不存在。

将代码移动到函数,并将该代码绑定为加载事件处理程序。 (addEventListener('load', someFunction);)。