有没有办法访问来自外部导入的JavaScript .js文件的变量?
在外部.js文件中,我定义了一个变量,如下所示:
// JavaScript Document
var PETNAME = "Beauty";
动态导入该代码后,我希望访问PETNAME变量,但我没有得到定义的值:
alert("Pet Name: " + PETNAME);
有什么可能是错的,有没有办法将外部.js代码的值带入主JavaScript?
谢谢。
答案 0 :(得分:9)
要动态导入JS,您需要考虑在浏览器解析脚本并且可供您使用时运行的onreadystatechange
和load
事件。您可以使用此功能:
function getScript(url, callback) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onreadystatechange = callback;
script.onload = callback;
document.getElementsByTagName('head')[0].appendChild(script);
}
你可以像这样使用它:
getScript('path to your js file', function(){
alert("Pet Name: " + PETNAME);
});
答案 1 :(得分:2)
在尝试访问其中定义的变量之前,请确保包含外部文件。还要确保外部文件中的变量未在函数内定义,在这种情况下,它们的范围仅限于该函数。如果这无助于尝试在变量之前删除关键字var
,则会创建全局变量。