9

我试图从另一个 JavaScript 文件调用一个用一个 JavaScript 文件编写的函数。我有以下代码,但它不起作用:

我的 HTML 文件

<script type="text/javascript" src="js1.js"></script>
<script type="text/javascript" src="js2.js"></script>
<script language="javascript">
    js1();
</script>

js1.js

function js1()
{
    alert("Hello from js1");
    js2();
}

js2.js

function js2() 
{
    alert("Hello from js2");
}

我能做些什么?

4

2 回答 2

7

尝试更改顺序

<script type="text/javascript" src="js2.js"></script>
<script type="text/javascript" src="js1.js"></script>
<script language="javascript">
   js1();
</script>

因为你调用js2();inside js1.js,所以脚本js2.js应该在之前执行。

在您的情况下,我认为它应该仍然可以在不更改这样的顺序的情况下工作,因为您js2();在函数内部调用。执行此脚本时:

function js1()
{
   alert("Hello from js1");
   js2();
}

甚至js2.js还没有执行,但此时您实际上并没有调用js2();

试试看它是否有效。

于 2013-07-05T04:34:46.093 回答
2

我假设这是您的整个HTML 页面。

为了让这些脚本运行,您需要将这些 JavaScript 文件与您的网页放在同一个文件夹中,并且实际上要有一个正确的 HTML 页面!

在您的 HTML 页面中,您需要在 head 或 body 中包含对 js1 和 js2 文件的引用,并将您在 HTML 页面本身中编写的脚本包含在 body 中,以便在加载时执行:

<!DOCTYPE html>
<!-- ^ Declaring this DOCTYPE means this is a HTML5 page. -->
<html>
    <head>
        <!-- This will load your scripts into the document. -->
        <script src="js1.js"></script>
        <script src="js2.js"></script>
        <!--
            In a HTML5 page, you don't need to include the
            'type="text/javascript"' attribute on script tags.
            They're treated as having that by default, unless you say otherwise.
        -->
    </head>
    <body>
        <!--
            You could also include your scripts here, but I'll
            just leave these commented out since they're already included.
        <script src="js1.js"></script>
        <script src="js2.js"></script>
        -->
        <script>
        js1();
        </script>
        <!--
            You don't need 'language="javascript"' on a script tag.
            Use the type attribute, or nothing in a HTML5 page.
        -->
    </body>
</html>
于 2013-07-05T04:54:19.757 回答