我想创建自己的资产加载器。要加载外部脚本,我使用了以下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请求发送到本地文件。
答案 0 :(得分:-2)
您可以尝试如下操作。
内部脚本:
function appendScript(src) {
var script = document.createElement(‘script’);
script.src = src;
document.head.appendChild(script);
}
外部脚本:
function loadedScript() {
// run something
}
loadedScript()
文件加载后,外部代码将只运行loadedScript()。