头部的JavaScript行不通



给定此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工作。但是,如果我将脚本元素放在身体上,则整个脚本都会显示。问题是我们不允许这样做。还有其他方法可以使它起作用吗?

编辑:我知道脚本在加载其他元素之前运行。由于文件将被修改:/

,我无法将其移动到其他地方。

可能是由于脚本仅在页面完成加载时工作,但是将代码放在head中,您可以先加载脚本。为了解决这个问题,您可以尝试使用以下方式替换当前的脚本代码:

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

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

大概,您的脚本正在尝试修改DOM并尝试访问身体元素。

在最初加载并运行脚本时,身体不存在。

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

最新更新