[英]How to pass data to external javascript script, loaded asynchronously
[英]JavaScript - How to load external script NON-asynchronously?
我正在寻找允许我使用JavaScript异步加载另一个JavaScript文件的代码。 我试过这个:
var script=document.createElement('script');
script.setAttribute("type","text/javascript");
script.setAttribute("src", "jquery.min.js");
document.getElementsByTagName("head")[0].appendChild(script);
$("div.whatever").css("color","red");
但这不起作用。 可以插入脚本节点,但是在jQuery加载之前它将继续运行脚本的其余部分。 最终失败,因为当$
尚未由jQuery定义时,jQuery代码会尝试运行。
有没有办法使用本机JS加载该脚本非异步?
您可以使用<script>
节点.onload
事件处理程序来继续/执行在加载脚本后应该执行的任何代码,例如
script.onload = function() {
// continune here
};
或者您可以尝试将async
标志设置为false
script.setAttribute("async", false);
虽然前一种解决方案几乎适用于任何可用的浏览器,但后者可能不受旧式浏览器的支持。
而不是同步加载,一个稍微好一点的想法可能是使用onload
:
script.onload = function() {
// $ is defined now
};
// append it only now to make sure it does not load before setting onload
document.getElementsByTagName("head")[0].appendChild(script);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.