我们可以在另一个JS文件中调用写在一个JS文件中的函数吗?有人能帮助我如何从另一个JS文件调用函数吗?
当前回答
下面是一个更具描述性的例子,附带一个CodePen代码片段:
1.js
function fn1() {
document.getElementById("result").innerHTML += "fn1 gets called";
}
2.js
function clickedTheButton() {
fn1();
}
index . html
<html>
<head>
</head>
<body>
<button onclick="clickedTheButton()">Click me</button>
<script type="text/javascript" src="1.js"></script>
<script type="text/javascript" src="2.js"></script>
</body>
</html>
输出
试试这个CodePen代码片段:link。
其他回答
是的,你可以。你需要将这两个JS文件引用到.aspx页面
<script language="javascript" type="text/javascript" src="JScript1.js">
</script>
<script language="javascript" type="text/javascript" src="JScript2.js">
</script>
JScript1.js
function ani1() {
alert("1");
ani2();
}
JScript2.js
function ani2() {
alert("2");
}
我想到了另一个好办法。 窗口(“functioName”)(params);
ES6:使用<script>在.html中包含许多js文件,你可以只包括一个主文件,例如script.js使用属性type="module"(支持),在script.js中你可以包括其他文件:
<script type="module" src="script.js"></script>
在script.js文件中包含另一个这样的文件:
import { hello } from './module.js';
...
// alert(hello());
在'module.js'中,你必须导出将要导入的函数/类
export function hello() {
return "Hello World";
}
这里是工作示例。
上面的答案有一个错误的假设,即文件的包含顺序很重要。因为在alertOne函数被调用之前,alertNumber函数不会被调用。只要两个文件都包含在时间alertOne中,那么文件的顺序并不重要:
[HTML]
<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript">
alertOne( );
</script>
[JS]
// File1.js
function alertNumber( n ) {
alert( n );
};
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// Inline
alertOne( ); // No errors
也可以按如下顺序排列:
[HTML]
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript">
alertOne( );
</script>
[JS]
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// File1.js
function alertNumber( n ) {
alert( n );
};
// Inline
alertOne( ); // No errors
但如果你这样做:
[HTML]
<script type="text/javascript" src="file2.js"></script>
<script type="text/javascript">
alertOne( );
</script>
<script type="text/javascript" src="file1.js"></script>
[JS]
// File2.js
function alertOne( ) {
alertNumber( "one" );
};
// Inline
alertOne( ); // Error: alertNumber is not defined
// File1.js
function alertNumber( n ) {
alert( n );
};
它只与变量和函数在执行时可用有关。定义函数后,它不会执行或解析其中声明的任何变量,直到随后调用该函数。
包含不同的脚本文件与脚本在同一文件中的顺序没有区别,除了延迟脚本:
<script type="text/javascript" src="myscript.js" defer="defer"></script>
那你得小心点。
您可以从正在工作的文件中调用在另一个js文件中创建的函数。因此,首先你需要将外部js文件作为-添加到html文档中
<html>
<head>
<script type="text/javascript" src='path/to/external/js'></script>
</head>
<body>
........
在外部javascript文件中定义的函数
$.fn.yourFunctionName = function(){
alert('function called succesfully for - ' + $(this).html() );
}
要在当前文件中调用此函数,只需将该函数称为-
......
<script type="text/javascript">
$(function(){
$('#element').yourFunctionName();
});
</script>
如果要将参数传递给函数,则将函数定义为-
$.fn.functionWithParameters = function(parameter1, parameter2){
alert('Parameters passed are - ' + parameter1 + ' , ' + parameter2);
}
并在当前文件中调用此函数为-
$('#element').functionWithParameters('some parameter', 'another parameter');