如何在不滚动的情况下强制加载安装“延迟加载”的网页图像?

时间:2015-06-15 07:24:39

标签: javascript google-chrome-extension lazy-loading

我实施了Chrome扩展程序。扩展程序需要获取网页的所有图像网址。但是,有些网页有“延迟加载”插件。 我的问题是,如果有可能我仍然可以在不需要手动向下滚动的情况下获取URL吗?

2 个答案:

答案 0 :(得分:1)

许多延迟加载插件将实际的URL存储在data- *部分中。向下滚动时,在图像标记进入视图之前,数据 - *内容在src属性上设置以开始加载图像。

您可以遍历所有像这样的图像标记来查找链接,例如:

var images = document.querySelectorAll("img"),
    links = [], i = 0, img;

while(img = images[i++]) 
    links.push(img.dataset.original || img.src);

但请注意,数据*持有者没有命名标准,因此不同的插件将使用不同的名称 - 您必须手动收集这些名称(f.ex。this plugin使用名称{{ 1}},this one使用data-original等等。

您可以在data-layzr集合中循环执行添加步骤,以查找可能包含URL的任何字符串(如果dataset为空),但这也很容易出错,因为图像来自同一服务器通常是相对链接和数据 - *也可以保存其他数据。

答案 1 :(得分:0)

查看源代码,您可以在所有图像上触发“出现”事件事件。

$('img').trigger('appear');

如果您要让jsfiddle进行测试,那会有所帮助。