我有这个脚本
<script>
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
loadJS('/script/script.js', function() {
// put your code here to run after script is loaded
});
</script>
我无法弄清楚如何从我正在尝试加载的脚本中获取响应数据。
基本上,这个脚本包含一个执行某些操作的函数,然后返回一些值。
我知道在jQuery模拟in data
函数中只是getScript
参数,但我这里只有原生JS。
我应该添加什么以及在哪里获取响应数据?
答案 0 :(得分:0)
假设您的脚本包含在全局范围内声明的函数,您只需包含此脚本,然后执行任何函数/访问此脚本中的任何成员:
加载并执行脚本后,您可以使用它,就像使用当前文档中的简单脚本一样。
这是一个从Google CDN加载jQuery脚本然后输出jQuery版本(这是jQuery库的一部分)的演示:
function loadJS(src, callback) {
var s = document.createElement('script');
s.src = src;
s.async = true;
s.onreadystatechange = s.onload = function() {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
document.getElementsByTagName('head')[0].appendChild(s);
}
console.log("typeof jQuery: " + typeof jQuery); // jQuery not loaded
loadJS("https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js", function() {
console.log("typeof jQuery: " + typeof jQuery + ", version = " + jQuery.fn.jquery); // jQuery has been loaded
});