Javascript 从HTML调用脚本中的方法。该脚本在HTML中间接引用
我有一个html,它包含以下内容:Javascript 从HTML调用脚本中的方法。该脚本在HTML中间接引用,javascript,jquery,html,Javascript,Jquery,Html,我有一个html,它包含以下内容: <head><script src="script1.js"></script></head> <body><script>myFunc();</script></body> script2.js包含以下内容: function myFunc() { alert "Hi!"; } 我现在需要直接从html中引用script2.js中的这个方法。但我无法实
<head><script src="script1.js"></script></head>
<body><script>myFunc();</script></body>
script2.js包含以下内容:
function myFunc() {
alert "Hi!";
}
我现在需要直接从html中引用script2.js中的这个方法。但我无法实现同样的目标。我收到一个错误,说没有定义myFunc。(在Mozilla中调试)
有人能帮我吗?在第一个JavaScript文件中尝试以下代码:
var jsfile = document.createElement("script");
jsfile.type = "text/javascript";
jsfile.src = TheFilePathOfSecondJsFile;
document.body.appendChild(jsfile);
我想你没有附加它。首先要小心你的双引号:
document.createElement(“脚本”)代码>=>document.createElement(“脚本”)代码>
js.type=”“text/javascript”“代码>=>js.type=“text/javascript”代码>
然后在script1.js的末尾编写:
var js = document.createElement(""script""); js.type = ""text/javascript"";
js.src = ""script2.js"";
document.body.appendChild( js );
你犯了不少错误:
注意你的双引号,(“脚本”)
应该是(“脚本”)
,所有使用双引号的地方也应该是这样
在myFunc()中,警报需要括号,在字符串“Hi!”
周围放上括号,因此应该是:警报(“Hi!”)代码>
您需要将脚本标记添加到body:document.body.appendChild(js)代码>
因此,最终的代码应该更像:
var js = document.createElement("script");
js.src = "script2.js";
document.body.appendChild(js);
此外,在html中引用script2函数时,请将它们包装在以下代码中:
window.js.onload = function(){
// functions from script 2 go here
myFunc();
}
这将在myscript2加载之前停止函数的运行
以下是最终代码:
<head><script src="myscript1.js"></script></head>
<!-- myscript1.js
window.js = document.createElement("script");
js.src = "script2.js";
document.body.appendChild(js);
-->
<body>
<script>
window.js.onload = function(){
myFunc();
/*
* All your myscript2 functions can go here
*/
}
</script>
</body>
window.js.onload=函数(){
myFunc();
/*
*所有myscript2函数都可以在这里使用
*/
}
为什么在script1.js
中的字符串周围有两个双引号?明显的问题是字符串周围有双引号(“text/javascript”“
),但我猜这并不在代码中,是吗?
<head><script src="myscript1.js"></script></head>
<!-- myscript1.js
window.js = document.createElement("script");
js.src = "script2.js";
document.body.appendChild(js);
-->
<body>
<script>
window.js.onload = function(){
myFunc();
/*
* All your myscript2 functions can go here
*/
}
</script>
</body>