我有2个JS文件-first.js
和second.js
我直接在call()
中定义了一个函数second.js
,而没有将其包含在任何内容下。
#second.js
function call(){
console.log('output');
}
现在,当我从first.js调用它时,由于函数call()
未定义,它给出了参考错误。
#first.js
function test(){
call();
}
我正在main.html
中按以下顺序调用这两个单独的js文件<script type = "text/javascript" src="second.js"> </script>
<script type = "text/javascript" src="first.js"> </script>
由于先于第二个而包括第二个,因此功能call()
已经存在,也没有包装在其他任何功能内,为什么出现引用错误?
编辑:-根据建议,我检查了second.js
,它具有导致问题的onclick功能-element.onclick = function(){ $.get('{{url_for('python_function')}}'); }
。我将其更改为element.onclick = function(){ $.get('{{url_for(python_function)}}'); }
,现在一切正常。
答案 0 :(得分:1)
您的代码中有一些错误。首先,您必须将import
中的代码second.js
放入first.js
中。看起来像这样:
#first.js
import <name variable whatever you want> from '<path to second.js>';
function test(){
<name of the variable you made in the first line>();
}
test();
接下来,您需要export
中的功能second.js
,所以您可以这样做:
#second.js
export default function call(){
console.log('output');
}
最后,在HTML中,您希望将first.js
的类型指定为module
而不是text/javascript
,如下所示:
<script type = "text/javascript" src="second.js"> </script>
<script type = "module" src="first.js"> </script>
编辑
正如@connexo所指出的那样,您不需要在HTML中包含second.js
,因为您是直接在first.js
中导入函数。因此,您可以改为在HTML中执行此操作:
<script type = "module" src="first.js"> </script>
希望这会有所帮助!让我知道它是否对您有用