从html文件调用Javascript函数

时间:2016-08-04 16:21:14

标签: javascript

我的javascript和html文件名为contents.js和page.html:

function sayHello() {
   alert("Hello World")
}
<!DOCTYPE html>
<html>
   <head>     
   </head>
   
   <body>
   <script type="text/javascript" src="contents.js" ></script>
   <script>
      window.onload = sayHello();
   </script>
      
   </body>
</html>

运行时,没有调用sayHello函数。在firefox的控制台中,它返回错误:

-SyntaxError:期望的表达式,得到'&lt;' contents.js:1

ReferenceError:sayHello未定义

两个文件都保存在同一个文件夹中。我在eclipse中使用node.js表达项目来创建服务器:

var http = require('http'),
    fs = require('fs');


fs.readFile('./page.html', function (err, html) {
    if (err) {
        throw err; 
    }       
    http.createServer(function(request, response) {  
        response.writeHeader(200, {"Content-Type": "text/html"});  
        response.write(html);  
        response.end();  
    }).listen(8888);
});

为什么我无法从page.html文件中调用contents.js文件中的'sayHello'函数?

3 个答案:

答案 0 :(得分:2)

代码

window.onload = sayHello();

... 调用 sayHello并将其返回值分配给window.onload,与x = foo() 调用的方式完全相同 {{1并将其返回值分配给foo

要仅指定函数引用,请不要调用它(删除x):

()

旁注:窗口window.onload = sayHello; 事件发生在页面加载周期的最后阶段,仅在加载所有其他资源(包括所有图像)之后。大多数情况下,您希望更早地运行代码。如果是这样,只需将其放在HTML中 end 所包含的load标记中,就在结束script标记之前。

答案 1 :(得分:1)

执行sayHello(),你不会返回任何材料,所以它没有被执行。如果sayHello返回了一个函数,它就会调用onload。

var sayHello = (function() {
  return function {
    alert("Hello World")
  };
})();

在这种情况下,可以使用sayHello()作为返回函数。

&#13;
&#13;
window.onload = sayHello;

function sayHello() {
  alert("Hello World")
}
&#13;
<!DOCTYPE html>
<html>

<head>
</head>

<body>
  <script type="text/javascript" src="contents.js"></script>

</body>


</html>
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

将它放在body标签内。

non_centrality = n*(mu/sig)**2