无法从外部JavaScript调用函数
我有一个调用JavaScript函数的简单HTML页面:无法从外部JavaScript调用函数,javascript,html,Javascript,Html,我有一个调用JavaScript函数的简单HTML页面: <!DOCTYPE html> <html> <script type="text/javascript" src="css/myscript.js"></script> <head> <link rel="stylesheet" href="css/style.css"> </head> <body
<!DOCTYPE html>
<html>
<script type="text/javascript" src="css/myscript.js"></script>
<head>
<link rel="stylesheet" href="css/style.css">
</head>
<body onload="javascript:hello()">
</body>
</html>
<script>
function hello() {
alert("load new content");
document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
</script>
当直接将JavaScript块粘贴到页面中时,它会起作用。但是,如果JavaScript包含在专用文件中,则无法找到hello()
使用开发人员工具,我可以看到JavaScript文件已成功加载。如果您的js文件中有这些脚本标记,请将其删除。如果您的js文件中有这些脚本标记,请将其删除。2问题,在解析脚本期间,文档已打开。如果再次打开,所有内容都将被删除,因此请将其删除(write已经是打开的调用)。其次,确保不要在加载事件之后添加脚本,以便真正定义函数hello。在这里,我将它添加到body中(如果需要,也可以使用defer)
函数hello(){
警报(“加载新内容”);
//document.open();
文档。写入(“更改内容!”);
document.close();
}
2问题,在解析脚本期间,文档已打开。如果再次打开,所有内容都将被删除,因此请将其删除(write已经是打开的调用)。其次,确保不要在加载事件之后添加脚本,以便真正定义函数hello。在这里,我将它添加到body中(如果需要,也可以使用defer)
函数hello(){
警报(“加载新内容”);
//document.open();
文档。写入(“更改内容!”);
document.close();
}
myscript.js的内容应该是:
function hello() {
alert("load new content");
document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
函数hello(){
警报(“加载新内容”);
document.open();
文档。写入(“更改内容!”);
document.close();
}
只有当JavaScript在HTML文件中时,才包含
tag;
告诉浏览器,“嘿,我们不再解释HTML了,这是JavaScript。”
此外,正如科林在评论中指出的,myscript.js
可能不属于您的css
文件夹。包含网站所有JavaScript文件的文件夹的通用名称是js
myscript.js
的内容应该是:
function hello() {
alert("load new content");
document.open();
document.write("<h1>Changed content!</h1>");
document.close();
}
函数hello(){
警报(“加载新内容”);
document.open();
文档。写入(“更改内容!”);
document.close();
}
只有当JavaScript在HTML文件中时,才会包含
标记;
告诉浏览器,“嘿,我们不再解释HTML了,这是JavaScript。”
此外,正如科林在评论中指出的,
myscript.js
可能不属于您的css
文件夹。包含网站所有JavaScript文件的文件夹的通用名称是js
您确定css/myscript.js
是正确的路径吗?您的
不允许直接出现在
标记中。它需要位于
或
中。您确定css/myscript.js
是正确的路径吗?您的
不允许直接位于
标记中。它需要在
或
中。非常感谢。所有答案都是正确的。我会将它标记为正确的,因为这是第一次答复。非常感谢。所有答案都是正确的。我会把它标记为正确的,因为这是第一次答复。