在另一个js文件中调用javascript函数

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

我想在第一个.js文件中调用第二个js文件中定义的函数。这两个文件都是在HTML文件中定义的,如下所示:

<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>

我希望调用第一个.js中定义的fn1(),并在第二个js中进行调用。从我的搜索结果来看,答案是,如果首先定义了First.js,这是可能的,但是从我的测试中,我还没有找到任何方法。

下面是示例代码:

second.js

document.getElementById("btn").onclick = function(){
    fn1();
}

First.js

function fn1(){
 alert("external fn clicked");
}
提问于
用户回答回答于

除非在尝试调用函数之前在同一个文件中或加载的文件中定义了函数,否则不能调用它。

一个函数不能被调用,除非它在同一个或更大的范围内,而不是试图调用它的函数。

可以在First.js中声明函数fn1,然后在第二步只需要fn1();

1.js:

function fn1 (){
    alert();
}

2.js:

fn1();

index.html:

<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>

它工作得很好:)

用户回答回答于

你可以使函数成为一个全局变量,first.js 看看闭包 ,不要把document.ready放在外面

你也可以使用ajax

    $.ajax({
      url: "url to script",
      dataType: "script",
      success: success
    });

同样你可以使用jQuery getScript

$.getScript( "ajax/test.js" )
  .done(function( script, textStatus ) {
    console.log( textStatus );
  })
  .fail(function( jqxhr, settings, exception ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
});

扫码关注云+社区

领取腾讯云代金券