关于document.scripts

作者: _palm | 来源:发表于2017-02-15 16:59 被阅读87次

laydate.js日期插件源码中,有一段代码会自动创建标签然后引入自身使用css文件,有一个获取laydate.js文件路径函数:

//获取组件存放路径
Dates.getPath = (function(){
    var js = document.scripts, jsPath = js[js.length - 1].src;
    return config.path ? config.path : jsPath.substring(0, jsPath.lastIndexOf("/") + 1);
}());

我第一次见到document.scripts, 然后查询得知,这会返回全部script的HTMLCollection
对象,这个对象类似数组,但是并不是真正的数组.

看到js[js.length - 1].src 这行代码,我立马就想给这个插件提一个bug, 假如,最后一个<script>标签的src值不对或空,那需要的css文件不就加载失败了吗?

带着疑惑我进行了一些列的测试, 比如,我在最后又引入了别的js文件,例如 jquery:

<script type="text/javascript" src="../jquery/jquery-1.11.0.min.js"></script>

但是取到的依然是<script type="text/javascript" src="../laydate.js"></script>
我很疑惑, 各种找资料,然后又把laydate.js位置移动到不同的地方, 最后发现总能取到laydate.js引入之前的所有<script>标签,于是我大概明白了:
这些代码执行都是阻塞的, 例如,在a.js中调用 document.scripts ,则只能获取到<script type="text/javascript" src="../a.js"></script>之前的<script>标签,后面的内容是无法获取到.

这个问题总算是想明白了, 于是js[js.length - 1]总是能获取到document.scripts调用所在的js 文件.

参考资料: Document.scripts

相关文章

  • 关于document.scripts

    在laydate.js日期插件源码中,有一段代码会自动创建标签然后引入自身使用css文件,有一个获取laydate...

  • 关于关于关于

    他们爱他们自己,不爱你 他们爱你是他们的母亲妻子女儿姐妹 他们不爱你 直到你死的时候,爱才产生,与遗忘同时 那也不...

  • 光明人生

    关于出生 关于成长 关于求学 关于青春期 关于恋爱 关于择业 关于婚姻 关于养生 关于家庭 关于人际 关于教子 关...

  • 「梦雅的简动力」打卡计时65天

    * 关于人生 * 关于梦想 * 关于方向 * 关于创业 * 关于投资 * 关于成败 * 关于个性 * 关于高度 *...

  • 关于

    关于两个人? 关于100步? 关于回头? 关于深情? 关于家庭? 关于孩子? 关于成长? 关于伤痛? 关于怀抱? ...

  • 2017新手妈妈年终总结

    关于购物 关于体重 关于减肥 关于纪念日 关于生活态度 关于上班 关于职场晋升加薪 关于睡眠 关于抱孩子 关于发型...

  • 2018-11-28

    关于流浪、关于随心、关于自由、关于世俗、关于规则、关于坦诚、关于真我、关于好奇心、关于对这整个世界的态度、关于整个...

  • 一首歌的时间

    认真的 想理出点思绪 关于今天关于明天 关于工作关于梦想 关于冬天关于夜晚 关于阳光关于浪花 关于木马关于窗花 关...

  • 最近的各种关于

    关于运动,关于中文阅读,关于英文听力,关于口算。 关于专注,关于目标,关于举家迁移。 关于对正确的过于执着,关于对...

  • 『关于』

    关于雨落,关于天晴; 关于入夜,关于天明; 关于齐眉,关于耳鬓; 关于缘定,关于今生。 (早安~诸君!)

网友评论

    本文标题:关于document.scripts

    本文链接:https://www.haomeiwen.com/subject/upvqwttx.html