如何通过脚本元素访问由javascript加载的外部脚本

时间:2018-08-28 17:20:07

标签: javascript external

我想创建自己的资产加载器。要加载外部脚本,我使用了以下javascript

function loadScript(src, callback) {
  var script = document.createElement("script");
  script.onload = function() {
    document.head.appendChild(script);
    callback();
  };
  script.src = src;
}

但是我认为这不是最优雅的解决方案。此代码段会使我的HTML代码很丑陋,因为它会将代码附加到头-对于我的所有依赖项。

所以我的问题是:是否可以在不使用以下行的情况下访问我的外部加载代码

document.head.appendChild(script);

我可以使用纯js这样的脚本来执行脚本吗

script.execute();

或更妙的是,有没有办法访问存储在我的外部js文件中的数据?例如,像变量“ bar”一样?

var foo = script.get("bar")

我什至可以执行外部文件的功能吗?

script.function(params)

很高兴听到您的想法和经验!
达斯·月亮

编辑:我忘了排除Ajax。我知道我可以通过ajax加载代码并通过eval()执行代码,但是如果您要在本地测试代码,那将不是一个好主意,因为您需要服务器(例如XAMPP Apache)将ajax请求发送到本地文件。

1 个答案:

答案 0 :(得分:-2)

您可以尝试如下操作。

内部脚本:

function appendScript(src) {
    var script = document.createElement(‘script’);
    script.src = src;
    document.head.appendChild(script);
}

外部脚本:

function loadedScript() {
   // run something
}

loadedScript()

文件加载后,外部代码将只运行loadedScript()。