我们可以调用另一个JS文件中的一个JavaScript编写的函数吗?
我们可以调用写在另一个JS文件中的一个JS文件中的函数吗? 任何人都可以帮助我如何调用另一个JS文件的function?
只要包含函数定义的文件在第一次使用函数之前被加载,该函数就可以被调用,就好像它在同一个JS文件中一样。
即
File1.js
function alertNumber(number) { alert(number); }
File2.js
function alertOne() { alertNumber("one"); }
HTML
<head> .... <script src="File1.js" type="text/javascript"></script> <script src="File2.js" type="text/javascript"></script> .... </head> <body> .... <script type="text/javascript"> alertOne(); </script> .... </body>
另一种方式是行不通的。 正如Stuart Wakefield所正确指出的那样。 另一种方式也将工作。
HTML
<head> .... <script src="File2.js" type="text/javascript"></script> <script src="File1.js" type="text/javascript"></script> .... </head> <body> .... <script type="text/javascript"> alertOne(); </script> .... </body>
什么不行的将是:
HTML
<head> .... <script src="File2.js" type="text/javascript"></script> <script type="text/javascript"> alertOne(); </script> <script src="File1.js" type="text/javascript"></script> .... </head> <body> .... </body>
尽pipealertOne
在调用时被定义,但在内部它使用了一个仍然没有定义的函数( alertNumber
)。
上面的答案有一个错误的假设,即包含文件的顺序很重要。 由于在调用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 ); };
它只关乎执行时可用的variables和函数。 当一个函数被定义时,它不会执行或parsing任何在其中声明的variables,直到该函数被随后调用。
包含不同的脚本文件与脚本在同一文件中的顺序没有什么不同,除了延迟的脚本:
<script type="text/javascript" src="myscript.js" defer="defer"></script>
那么你需要小心。
只要这两个网页都被引用,是的。
你只需调用这些函数,就好像它们在同一个JS文件中一样。
如果包含所有文件,则可以从一个文件调用另一个文件 (如函数,variables,对象等)
js函数和variables,你写在一个.js文件 – 说a.js将可用于其他js文件 – 说b.js只要a.js和b.js包括在文件中使用以下包括机制(如果b.js中的函数调用a.js中的函数,则以相同的顺序)。
<script language="javascript" src="a.js"> and <script language="javascript" src="b.js">
是的你可以 。 您需要将两个JS file
都引用到.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"); }
你可以从你正在工作的文件中调用另一个js文件中创build的函数。因此,首先你需要将外部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>
如果要将parameter passing给函数,则将函数定义为 –
$.fn.functionWithParameters = function(parameter1, parameter2){ alert('Parameters passed are - ' + parameter1 + ' , ' + parameter2); }
并在你当前的文件中调用这个函数 –
$('#element').functionWithParameters('some parameter', 'another parameter');