为什么javascript链接无法在本地主机中运行?

时间:2015-12-24 10:50:23

标签: javascript html hyperlink

请帮助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;
&#13;
&#13;

但是当它在体内它起作用。我的问题。为什么?

4 个答案:

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

WORKING COPY

答案 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 });