为什么我在浏览器中出错?
TypeError:document.body为null
代码在JSfiddle中运作良好。
HTML
<head>
<meta charset="UTF-8">
<title></title>
<script src="jsscript.js"></script>
</head>
<body>
</body>
JS
var creElem = document.createElement("p");
creElem.innerHTML = "Hellow World";
creElem.setAttribute("id", "id_name");
document.body.appendChild(creElem);
答案 0 :(得分:12)
在DOM加载时执行代码。将您的逻辑包装在DOMContentLoaded
的事件监听器中。
document.addEventListener('DOMContentLoaded', function () {
// ...
});
它在JSFiddle中工作的原因是因为JS是在加载时执行的(这是JSFiddle中的默认选项)。
或者,根据您何时需要执行逻辑,您还可以使用:
window.addEventListener('load', function () {
// ...
});
答案 1 :(得分:0)
您的document.body
尚未创作或存在。如果您想将孩子附加到document.body
或在您的javascript中使用document.body
执行任何操作,请将您的javascript cod或js文件的链接放在body标记的末尾。
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="jsscript.js"></script>
</body>
</html>