在外部js里实现等页面加载完成了再执行脚本,即不用window.onload,也不将<script>块放在底部,也不使用库 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在外部js里实现等页面加载完成了再执行脚本,即不用window.onload,也不将<script>块放在底部,也不使用库

2016-06-16 14:40:58 1950 1

我想到一种方法可以使用定时器setTimeout,类似于这样
function $(string){ return document.getElementById(string); } setTimeout("",1000);
想请教各位有没有更好的方法呢,也不使用库,其实我很想知道jquery里是怎么操作的。

取消 提交回答
全部回答(1)
  • 杨冬芳
    2019-07-17 19:40:52
    ready(function(){
      // dom ready 后执行这段代码。
    });
    

    ready 实现如下:

    var isReady = false;
    var readyList = [];
    
    function ready(fn) {
      if (isReady) {
        setTimeout(function () {
          fn()
        }, 0);
        return;
      }
      readyList.push(fn);
    }
    
    function setReady() {
      if (isReady) {
        return;
      }
    
      isReady = true;
      for (var i = 0, n = readyList.length; i < n; i++) {
        readyList[i]();
      }
      readyList.length = 0;
    }
    
    (function () {
      if (document.readyState === 'complete') {
        setTimeout(setReady, 0);
      } else {
        document.addEventListener('DOMContentLoaded', setReady);
        window.addEventListener('load', setReady);
      }
    }());
    
    0 0
相关问答

1

回答

mysql读取信息并以数组的形式传递到js,如何做?

2016-02-14 14:14:16 2063浏览量 回答数 1

1

回答

在Mysql(或者在js中)构建完整查询结果数组

2016-07-07 14:37:23 1886浏览量 回答数 1

1

回答

前台Ajax传输JS数组到Struts2

2016-07-08 15:52:03 2912浏览量 回答数 1

1

回答

js字符串转化为数组

2016-07-12 15:04:51 1563浏览量 回答数 1

1

回答

jquery post 传递js数组问题

2016-07-13 16:31:37 2332浏览量 回答数 1

1

回答

js中的数据处理 数组寻址

2016-07-13 17:23:25 1567浏览量 回答数 1

1

回答

js数组转事件格式问题

2016-07-14 10:36:24 1657浏览量 回答数 1

1

回答

angular绑定成功,js里修改了数组的值,但视图页面里{{}}的数据没有更改

2016-07-14 16:35:53 3033浏览量 回答数 1

4

回答

js怎么把数组的值都变成0

2018-05-10 19:58:21 3410浏览量 回答数 4

1

回答

js数组怎么定义

2018-05-10 19:58:22 1415浏览量 回答数 1
+关注
杨冬芳
IT从业
文章
问答
问答排行榜
最热
最新
相关电子书
更多
JS 语言在引擎级别的执行过程
立即下载
编程语言如何演化—— 以 JS 的 private 为例
立即下载
Python第五讲——关于爬虫如何做js逆向的思路
立即下载