我想调用在second.js文件的first.js文件中定义的函数。这两个文件都在HTML文件中定义,例如:
我想在second.js中调用first.js中定义的fn1()。根据我的搜索答案,如果首先定义了first.js是可能的,但是根据我的测试,我没有找到任何方法。谢谢
编辑: 下面是示例代码: second.js
class A(object):
def __getattr__(self, name):
print "__getattr__ : %s" % name
x = A()
setattr(self, name, x)
print self.__dict__
print getattr(self, name)
return x # getattr(self, name)
x = A()
x.a = 1 . # Works fine.
print x.a
x.b.c = 2 # Works fine.
print x.b.c
first.js
this.getSecEnabled = function(){ ----> i dont know how this is used here..
return SecEnabled;
}
问题:无法在此处显示已启用/已禁用的任何语句。
请帮助我是javascript新手
答案 0 :(得分:3)
尝试在first.js之前加载second.js
答案 1 :(得分:0)
通常,如果您不想等到文档加载完毕,则必须按以下顺序加载脚本:
但是,如果您要更改第二秒的代码以在文档准备就绪时执行,则可以按任何顺序加载脚本。
答案 2 :(得分:0)
是的,您可以做到。大多数最新的浏览器均支持开箱即用的ECMAScript模块。您需要做的只是:
确保所有这些链接都在浏览器中是这样的:
<script src="./path/to/script1.js" type="module" />
现在您可以执行以下操作:
script1.js
export function getSecEnabled (){
return SecEnabled;
}
script2.js
import { getSecEnabled } from 'path/to/script1.js';
if( getSecEnabled() == "SecEnabled" ){
alert(" Security Enabled....!!");
}else{
alert(" Secuity Disbaled.!!");
}
答案 3 :(得分:0)
我有一个名为include()的函数。
此功能的作用是告诉浏览器加载文件,然后执行操作。
因此,只能在文件加载后执行操作。
所以就您而言;我们将首先包含first.js,然后包含second.js
因此,second.js将仅在first.js运行之后运行。
这是代码:
function include(file){
return new Promise(function(resolve, reject){
var script = document.createElement('script');
script.src = file;
script.type ='text/javascript';
script.defer = true;
document.getElementsByTagName('head').item(0).appendChild(script);
script.onload = function(){
resolve()
}
script.onerror = function(){
reject()
}
})
/*I HAVE MODIFIED THIS TO BE PROMISE-BASED
HOW TO USE THIS FUNCTION
include('js/somefile.js').then(function(){
console.log('Do an action that depends on somefile.js');
},function(){
console.log('Do not do an action that depends on somefile.js');
})
*/
}
include('first.js')
.then(()=>{
include('second.js');
})