5

可能重复:
动态导入 JavaScript

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

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

// JavaScript Document
var PETNAME = "Beauty";

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

alert("Pet Name: " + PETNAME);

有什么问题,有没有办法将外部 .js 代码中的值带入主 JavaScript?

谢谢你。

4

2 回答 2

11

要动态导入 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);
}

你可以像这样使用它:

getScript('path to your js file', function(){
  alert("Pet Name: " + PETNAME);
});
于 2012-06-02T18:18:47.607 回答
3

确保在尝试访问其中定义的变量之前包含外部文件。还要确保外部文件中的变量未在函数内部定义,在这种情况下,它们的范围仅限于该函数。如果这无助于尝试var在变量之前删除关键字,这将创建全局变量。

于 2012-06-02T18:18:23.810 回答