我试图让HTML文件打印一个javascript文件的输出,但似乎不起作用--我只是得到了一个空白页面。
我的超文本标记语言文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="sketch.js"> setup()</script>
</head>
<body>
<div id="fog"></div>
</body>
</html>
My javascript file (sketch.js)
function setup() {
s = "hello";
document.getElementById('fog').innerText = s;
}
发布于 2018-07-16 07:41:35
如果在结束主体标记附近包含调用setup
的脚本,则在调用setup
时不存在带有id
fog
的dom
<head>
<meta charset="UTF-8">
<script src="sketch.js"></script>
</head>
<body>
<div id="fog"></div>
<script>setup()</script>
</body>
发布于 2018-07-16 07:55:32
您的脚本标记是同步的,这意味着解析器在完全解析html之前等待并执行脚本的内容。在执行脚本时,div甚至都不在那里。如果您不想延迟脚本或更改其位置,则至少可以使用DOMContentLoaded事件:
window.addEventListener(
"DOMContentLoaded",
function setup() {
var s = "hello";
document.getElementById('fog').innerText = s;
},
false
);
在你的脚本中。
https://stackoverflow.com/questions/51353010
复制相似问题