Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从外部JavaScript调用函数_Javascript_Html - Fatal编程技术网

无法从外部JavaScript调用函数

无法从外部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

我有一个调用JavaScript函数的简单HTML页面:

<!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
是正确的路径吗?您的
不允许直接位于
标记中。它需要在
中。非常感谢。所有答案都是正确的。我会将它标记为正确的,因为这是第一次答复。非常感谢。所有答案都是正确的。我会把它标记为正确的,因为这是第一次答复。