调用JavaScript函数从HTML文件
我的JavaScript和HTML文件名为contents.js和page.html中:调用JavaScript函数从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:预计表达,得到了 '<' contents.js:1周
的ReferenceError:sayHello的是没有定义
这两个文件都保存在同一文件夹中。而我使用的是Node.js的快递项目在Eclipse中创建服务器:
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);
});
为什么我无法从调用“sayHello的”功能在contents.js文件page.html文件?
执行sayHello(),你不返回任何东西,所以它没有执行。如果sayHello
已经返回一个函数,它会调用onload。
var sayHello = (function() {
return function {
alert("Hello World")
};
})();
在这种情况下,可能会使用sayHello()作为其返回函数。
window.onload = sayHello;
function sayHello() {
alert("Hello World")
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript" src="contents.js"></script>
</body>
</html>
请添加说明。只是代码不会帮助任何人。 – Li357
嘿@AndrewL。感谢您指出,我正要更新它。我希望你能重新考虑你的意见。兄弟会下一次兄弟会! – Ayan
我试过这个,引用错误现在没有了,但我仍然得到:SyntaxError:期望的表达式,得到' user2562530
把它的body标签像这里面。
<body onload="sayHello()"></body>
代码
window.onload = sayHello();
... 电话sayHello
并指定其返回值window.onload
,完全相同的方式x = foo()
电话foo
,并指定其返回值x
。
要只是分配函数参考,不把它(删除()
):
window.onload = sayHello;
边注:窗口load
事件发生得很晚在页面加载的过程,只有经过所有其他资源都被加载,包括所有图像。大多数情况下,你想要更早地运行你的代码。如果是这样,只需将它放入一个script
标记中,该标记包含在HTML的结尾处,就在关闭</body>
标记之前。
为了展开,'sayHello()'返回'undefined',所以'window.onload'被设置为'undefined',这就是为什么没有发生。 –
'window.onload = sayHello();'将'sayHello'的返回值赋给'window.onload'。你回来了什么? – Teemu
您忘了使用触发事件。像'onload'或'onpageshow'。 –