JavaScript:访问外部.js文件中定义的变量

Bun*_*ori 5 javascript web

可能重复:
动态导入JavasScript

有没有办法访问来自外部导入的JavaScript .js文件的变量?

在外部.js文件中,我定义了一个变量,如下所示:

// JavaScript Document
var PETNAME = "Beauty";
Run Code Online (Sandbox Code Playgroud)

在动态导入该代码后,我希望访问PETNAME变量,但我没有得到定义的值:

alert("Pet Name: " + PETNAME);
Run Code Online (Sandbox Code Playgroud)

什么可能是错的,有没有办法将外部.js代码的值带入主JavaScript?

谢谢.

Sar*_*raz 9

要动态导入JS,您需要考虑在浏览器解析脚本并且可供您使用时运行的事件onreadystatechangeload事件.你可以使用这个功能:

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);
}
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

getScript('path to your js file', function(){
  alert("Pet Name: " + PETNAME);
});
Run Code Online (Sandbox Code Playgroud)