之前说过我依葫芦画瓢写了几个小脚本,解除了桌面浏览器访问微信公众号文章时的延迟加载,但那个系列的脚本都遇到控制台报错的问题:
作为一个强迫症,显然不能忍,改呗。
先是直接加上 length
改成了 for(var i in document.images.length)
,不报错了,脚本也无效了。放狗搜了才明白,for (x in y)
是特定的循环语句,输出的不是数字是字符串。
明白了原理就好办了,既然用了 length
不报错,那就改成标准的 for 循环:for (i = 0; i < imgs.length; i++)
.
另外发现,data-src
这种属性不能直接用 .
来获取,传统的兼容性最好的写法是 getAttribute('data-src')
,但既然是 userScript 当然用于现代浏览器,不可能不支持 HTML5 特性,可以用效率更高的 .dataset.src
来获取。
依葫芦画瓢之余还是要多学习……