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

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

我想在second.js中调用first.js中定义的fn1()。从我的搜索答案是,如果first.js是首先定义的,这是可能的,但从我的测试中,我还没有找到任何方法来做到这一点。

这是我的代码:

second.js

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

first.js

function fn1() {
    alert("external fn clicked");
}

当前回答

您可以考虑使用es6导入导出语法。在文件1中;

export function f1() {...}

然后在文件2;

import { f1 } from "./file1.js";
f1();

请注意,这只适用于你使用<script src="./file2.js" type="module">

如果这样做,您将不需要两个脚本标记。您只需要主脚本,就可以导入所有其他内容。

其他回答

我也遇到过同样的问题。我已经在jquery文档中定义了函数。

$(document).ready(function() {
   function xyz()
   {
       //some code
   }
});

我在另一个文件中调用了这个函数xyz()。这不起作用:)你必须在文档准备好上面定义函数。

这其实很晚了,但我想我应该分享一下,

在index . html

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

在1. js

fn1 = function() {
    alert("external fn clicked");
}

在2. js

fn1()
// module.js
export function hello() {
  return "Hello";
}

// main.js
import {hello} from 'module'; // or './module'
let val = hello(); // val is "Hello";

参考来自https://hype.codes/how-include-js-file-another-js-file

JS 1:

function fn(){
   alert("Hello! Uncle Namaste...Chalo Kaaam ki Baat p Aate h...");
}

JS 2:

$.getscript("url or name of 1st Js File",function(){
fn();
});

first.js

function first() { alert("first"); }

Second.js

var imported = document.createElement("script");
imported.src = "other js/first.js";  //saved in "other js" folder
document.getElementsByTagName("head")[0].appendChild(imported);


function second() { alert("Second");}

index . html

 <HTML>
    <HEAD>
       <SCRIPT SRC="second.js"></SCRIPT>
    </HEAD>
    <BODY>
       <a href="javascript:second()">method in second js</a><br/>
       <a href="javascript:first()">method in firstjs ("included" by the first)</a>
    </BODY>
</HTML>