我实施了Chrome扩展程序。扩展程序需要获取网页的所有图像网址。但是,有些网页有“延迟加载”插件。 我的问题是,如果有可能我仍然可以在不需要手动向下滚动的情况下获取URL吗?
答案 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进行测试,那会有所帮助。