这应该很容易,但也很简单,但我不能解决这个问题。
如果我在在线编辑器中键入以下HTML和JS代码,一切都会正常工作,但如果我在我的(脱机)编辑器中输入这些代码,它将无法工作。以下是在线代码:http://jsbin.com/kenurunahu/1/edit?html,js,output)
我敢打赌,这与加载顺序和文件的链接方式有关。
这就是我的(lokal) HTML文件的样子(文件链接的地方):
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" content="Index.css">
<script src="Script.js"></script>
</head>
<body>
<p id="demo">
something
</p>
</body>
</html>
非常感谢你的帮助!
更新Firefox和Chrome显示JS文件。有时我会收到一条错误消息,上面写着'innerHTML是null',但是如果我把相同的代码写到控制台中,一切都很好。
发布于 2016-05-07 16:09:04
在浏览器完全加载html dom之前加载js脚本时会出现错误。测试的一个简单解决方案是将脚本包含放在html页面的末尾,如下所示:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" content="Index.css">
</head>
<body>
<p id="demo">
something
</p>
<script src="Script.js"></script>
</body>
</html>更好的解决方案是只在dom完全加载时运行脚本。例如,在body onload事件中:
<body onload="yourFunc()"> 或者只使用js代码(例如使用jquery函数)或编写一个应该在所有主要浏览器上工作的简单自定义处理程序,从而更好地处理事件:
document.addEventListener("DOMContentLoaded", function(event) {
//call your func here
});希望这能有所帮助。
发布于 2016-05-07 15:32:33
几个猜测:
script.js,请不要链接到Script.jsindex.html文档位于同一个文件夹中?因为你就是这么说的。通常,我们安排我们的文件结构如下:
public_html - css - js - img - inc
如果样式/脚本存储在子文件夹(如js和css )中,则必须将引用修改为:
<link rel="stylesheet" content="css/Index.css">
<script src="js/Script.js"></script>发布于 2016-05-07 16:01:25
作为一种良好的实践,您的脚本应该放在body标记的结尾处。外部脚本是阻塞的,因此这将是有意义的,我们不把它们放在顶部。另外,当您的script放在顶部运行时,您的DOM可能还没有准备好,这意味着脚本试图访问的任何元素可能根本不存在于DOM中,从而导致您的错误。
因此,所有的脚本都应该在body标记的结尾处。这样,当脚本加载和运行时,就可以确保DOM已经准备好了。
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" content="Index.css">
</head>
<body>
<p id="demo">
something
</p>
<script src="Script.js"></script>
</body>
</html>
https://stackoverflow.com/questions/37090314
复制相似问题