如何使用.js从另一个.js访问变量?

时间:2017-12-31 19:45:27

标签: javascript

我想在js文件中使用属于另一个js文件的变量。 即我想使用file2.js变量运行file1.js.

有谁知道怎么做?
是否可以从另一个.js文件中访问变量?

file1.js:

oScript = document.createElement('script');
oScript.src = 'file2.js';
oScript.type = 'text/javascript';
document.body.appendChild(oScript);
console.log(message);

file2.js:

var message = [{"id":"01", "name":"Text A", "text":"more text"},{"id":"02", "name":"Text B", "text":"more text"}];

2 个答案:

答案 0 :(得分:1)

您需要确保在加载file2之后才运行console.log(message)。我建议使用AJAX而不是尝试将文件注入HTML。

var xhr = new XMLHttpRequest();
xhr.open('GET', 'file2.js');
xhr.onload = function() {
    eval(xhr.responseText);
    console.log(message);
    window.message = message; //Include this if you need message to be a global variable
};
xhr.send();

但是,我强烈建议使用JSON文件来存储消息变量的值并使用ajax加载它,而不是使用JavaScript代码。

答案 1 :(得分:0)

如果您使用script事件,则只需使用load代码即可执行此操作:

oScript = document.createElement('script');
oScript.src = 'file2.js';
oScript.type = 'text/javascript';
oScript.onload = function() {
    console.log(message);
};
document.body.appendChild(oScript);

或者:

oScript = document.createElement('script');
oScript.src = 'file2.js';
oScript.type = 'text/javascript';
oScript.addEventListener('load', function() {
    console.log(message);
});
document.body.appendChild(oScript);