在脚本标记块之间调用JavaScript函数

时间:2015-08-28 04:02:18

标签: javascript

我有两组包含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()可能最终也不会被定义。

感谢。

2 个答案:

答案 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的末尾执行回调方法。

希望这有帮助!