我有两组包含JavaScript函数的<script>
标记块,并将它们置于优先级顺序中。其中一个标记包含src
到另一个外部.js库文件,如下所示。
<script src='libtest.js'>
function helloworld() {
alert('hello world');
}
function callLibraryTest() {
runLibraryTest(); //Calls into libtest.js for auto test.
}
</script>
... some html ...
<script>
function callHello() {
helloworld();
}
</script>
我得到的错误是callHello()
函数没有定义helloworld()
。我该如何解决?
请注意,这些脚本是故意分开的,因为如果它们被捆绑在一起,那么调用callHello()
可能最终也不会被定义。
感谢。
答案 0 :(得分:7)
如果<script>
标记具有src
属性,则它也不能包含脚本文本。将helloworld
功能移至单独的<script>
代码。
<script src="libtest.js"></script>
<script>
function helloworld() {
alert('hello world');
}
function callLibraryTest() {
runLibraryTest(); // Calls into libtest.js for auto test.
}
</script>
<!-- some html ... -->
<script>
function callHello() {
helloworld();
}
</script>
答案 1 :(得分:1)
假设您在“libtest.js”成功加载时尝试运行“callHello”函数。正如Dan已经解释过,带有src属性的标签不能在其正文中包含javascript代码。 你可以尝试像回调方法一样的技巧。例如,将src标记修改为“libtest.js?callback = callHello”,并在libtest.js的末尾执行回调方法。
希望这有帮助!