2015-12-24 90 views
-2

当脚本标记在head时,请帮助js文件在localhost中不起作用。 为什么javascript链接在本地主机中不起作用?

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};
<!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>

但是当它在体内它works.My质疑。为什么?

+0

使用你的代码在onload .... –

+0

你的意思是F12在Mozilla中? – Sn0ker

回答

0

问题是你的代码在body加载之前在head中执行。 document.getElementById("demo")找不到元素“demo”,因为它还不存在。

使用它的onload:

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}; 
} 
0

这是因为当你正在把这个js代码段head标签里面不知道是什么<p id="demo"></p>

但是当你把它的身体标签内,第一DOM得到解析,则执行JS。你仍然可以把它的头标签内使用window.load。这里是片断

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}; 
} 

WORKING COPY

0

document.getElementById("demo")将尝试找到ID demo一个元素,但由于在页面尚未完全呈现,它将不会找到任何内容并返回null。使用window.onload

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}; 
}; 
0

脚本应该总是在你的身体的底部被加载,以确保DOM被执行之前加载。或者,你可以使用JQuery $(document).ready(function(){ //put your code in here });

相关问题