请帮助js文件在localhost中不起作用,当脚本标记在头部时。
document.getElementById("demo").innerHTML =
typeof "john" + "<br>" +
typeof 3.14 + "<br>" +
typeof false + "<br>" +
typeof [1,2,3,4] + "<br>" +
typeof {name:'john', age:34};
&#13;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="javascript/script.js"></script>
</head>
<body>
<p id="demo"></p>
</body>
</html>
&#13;
但是当它在体内它起作用。我的问题。为什么?
答案 0 :(得分:0)
这是因为当你将这个js片段放在head标签中时,它不知道什么是<p id="demo"></p>
但是当你把它放在body标签内时,首先解析DOM,然后执行js。您仍然可以使用window.load
将其置于head标记内。这是片段
window.onload=function(){
document.getElementById("demo").innerHTML =
typeof "john" + "<br>" +
typeof 3.14 + "<br>" +
typeof false + "<br>" +
typeof [1,2,3,4] + "<br>" +
typeof {name:'john', age:34};
}
答案 1 :(得分:0)
Reflect.ownKeys
会尝试查找ID为document.getElementById("demo")
的元素,但由于该网页尚未完全呈现,因此无法找到任何内容并返回demo
。
使用null
。
window.onload
答案 2 :(得分:0)
问题是你的代码是在加载正文之前在头部执行的。 android {
buildTypes {
debug {
resValue "string", "google_maps_api_key", "[YOUR DEV KEY]"
}
release {
resValue "string", "google_maps_api_key", "[YOUR PROD KEY]"
}
}}
找不到元素“demo”,因为它还不存在。
在onload上使用它:
document.getElementById("demo")
答案 3 :(得分:0)
脚本应始终加载到正文的底部,以确保在执行之前加载DOM。或者,您可以使用JQuery $(document).ready(function(){ //put your code in here });