开发者社区> 问答> 正文

createElement 加载JQ的疑问

最近在研究createElement 加载的玩法。然后发现一个比较难理解的事情。

页面 第一步通过createElement 加载一个JQ库。然后下面要是又一段代码 $(function(){}) ; 则会提示 $没定义。

这时候,可以通过一些手段来处理。

function asdsad(){
    if(!window.jQuery){
        var script = document.createElement('script');
        script.src = 'jquery-1.8.3.min.js';
        script.type = 'text/javascript';
        script.async = true;
        document.getElementsByTagName('head')[0].appendChild(script); <span></span> setTimeout(asdsad(),3000)
    }else{
        alert("dd")
        $(function(){
           alert("d")
        })
        //console.dir(window.$)
    }
}
asdsad()

为什么一定要用setTime out ?

目前我想到的是,由于代码片段早于浏览器加载完成,因此通过createElement 加载的,将会是 没定义。蛋疼中。

展开
收起
a123456678 2016-07-11 16:46:35 2056 0
1 条回答
写回答
取消 提交回答
  • settimeout我看是为了创建失败的时候重试吧。如果一直失败,它会每三秒重试一次。

    2019-07-17 19:54:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
<script>...[你的美好].1534419270.pdf 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载