不能使用相同脚本元素的“src”中定义的函数?

时间:2014-05-12 02:45:58

标签: javascript html onload

我试图将一些js代码用于:

  • 创建导航菜单
  • 在js
  • 中创建标题,导航,ul和li元素
  • 自动调用

这是HTML:

<!DOCTYPE html>
<html>
<head>
  <script src="js1.js">
    cHeader();
  </script>
</head>
<body>
</body>
</html>

这是js:

function cHeader(){
    var header = document.createElement("header");
    var body = document.getElementById("body");
    body.appendChild(header);
    var ul = document.createElement("ul");
    header.appendChild(ul);
    var li = document.createElement("li");
    ul.appendChild(li);
    var liNode = document.createTextNode("Home");
    li.appendChild(liNode);
}

当我尝试通过html中的<body onLoad="cHeader()"><script>cHeader()</script>来调用该功能时,我在Chrome中的控制台会返回:

Uncaught ReferenceError: cHeader is not defined index.html:19
(anonymous function)

虽然,即使我尝试使用内联脚本标记,代码也不会做任何事情。

2 个答案:

答案 0 :(得分:8)

<script src="js1.js">
    cHeader();
</script>

应该是:

<script src="js1.js"></script>
<script>cHeader();</script>
带有<script>属性的

src标记不应包含任何内容。

相反,在加载脚本之后,您需要在另一个<script></script>

中调用它

答案 1 :(得分:0)

尝试将window.onload=function(){cHeader();};放在javascript文件的底部。