【发布时间】:2015-10-13 23:58:00
【问题描述】:
这不是 this 的重复,因为它还使用了 document.ready 方法,这显然是行不通的。
我想避免浏览器加载嵌套在隐藏的<div> 元素中的图像 (<img>)。
所以我尝试了这个,但是 javascript 执行得太晚了,浏览器已经开始下载它不应该下载的图像。
$(document).ready(function() {
$('div').not(":visible").each(function () {
$(this).find('img').each(function() {
$(this).attr("src","");
});
});
});
有没有一个好的javascript解决方案?
还是我必须使用<img srctmp="...."/>,然后通过javascript将srctmp替换为src,用于那些未嵌套在隐藏<div>中的图像?
【问题讨论】:
-
我相信将
src属性设置为""不会影响这一点。将属性保存到data-src或其他内容后尝试删除整个属性? -
无法阻止通过 JavaScript 下载图像源。您必须将
src属性留空,然后将其与另一个属性一起插入,但请改用data-srctmp。 -
$(document).ready(function() {...});中的代码总是会在 DOM 准备好之后执行(意味着在所有图像和内容都已加载之后)。所以不要使用ready。 -
@AbraarArique 但没有
ready,您将无法访问任何元素。当图像完成加载时,将调度load事件,而不是DOMContentLoaded(ready)。
标签: javascript jquery html css