2016-01-28 103 views
0

我想写一个非常简单的HTML页面,显示由JS文件生成的消息。我对HTML/JS有些新鲜,我确定我缺少一些非常简单的东西,但我不能为了我的生活而让页面读取脚本。当我加载页面时,它在检查器中完全没有任何错误是空白的。HTML不读取外部JavaScript文件

这是该项目的文件夹结构:

-Project (folder) 
--templates (folder) 
----home.html 
--src (folder) 
----home.js 
--styles (folder) 
----home.css 

而且,我敢肯定,我的HTML页面看到脚本,因为当我删除或重命名该脚本,我得到在浏览器的检查错误告诉我它找不到剧本。所以它看到脚本,它只是没有运行它出于某种原因。

这里是代码...

home.html的:

<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="../styles/home.css"></link> 
     <script type="type/javascript" src="../src/home.js"></script> 
    </head> 
    <body> 
     <div id="bodytext"></div> 
    </body> 
</html> 

home.js:

(function() { 
    console.log("I AM READING THE SCRIPT"); 
    document.getElementById('bodytext').innerHTML = "I AM READING THE SCRIPT"; 
})(); 

莫非一些慷慨的灵魂在那里,请给我介绍什么极端我正在犯的简单错误?

谢谢!

回答

1

价值type属性应该是text/javascript如下:

<script type="text/javascript" src="../src/home.js"></script> 
+0

是的!我知道它必须是一个愚蠢的错字或什么的。谢谢!! – SemperCallide

+0

或者根本没有类型,只是让它成为''。假设OP使用HTML5规范。 –

+0

像其他人一样,我会一起删除'type'属性。 HTML5标记为可选,https://www.w3.org/TR/html5/scripting-1.html#attr-script-type,我相信它也被弃用。 – romellem

0

你的脚本运行之前DOM完全加载完成。如果您将<script>标记放在关闭主体标记(</body>)之前,它将在加载DOM后运行,并且您将能够像正常一样遍历DOM。

0

价值型属性应该是text/java描述如下

enter code here 

伴随着这一点,你必须改变你的java脚本代码如下,所以只有当页面完全加载&文件,脚本被执行对象是availabe。

window.onload = function() { 
 
    console.log("I AM READING THE SCRIPT"); 
 
    document.getElementById('bodytext').innerHTML = "I AM READING THE SCRIPT"; 
 
};