【问题标题】:Javascript stop image loadingJavascript停止图像加载
【发布时间】:2012-10-22 23:27:38
【问题描述】:

我正在制作一个网站,其中一个页面正在使用来自外部网站的 javascript 文件

该外部 js 包含(实际上加载)我的页面上不需要的图像。

如何阻止该图像加载(假设 img url 是“http://image.com/img.png”)?有没有javascript代码可以做到这一点?

谢谢大家

【问题讨论】:

标签: javascript jquery html image


【解决方案1】:

您可以选择带有 URL 的图像并将其从 DOM 中删除

$(document).ready(function(){
    $('img[src="http://image.com/img.png"]').remove();
});

更新 1:

你可能想要部分匹配,试试这个:

$(document).ready(function(){
   $('img[src*="image.com/img.png"]').remove(); 
});

【讨论】:

  • 选择器是否工作?在控制台中尝试$('img[src="http://image.com/img.png"]') 以查看是否有任何图像元素正在返回。否则,请使用生成的整个图像标签更新您的问题。
  • 我在控制台写了 $('img[src="image.com/img.png"]') 并且没有返回图像
  • 有没有.stoploading,.stop
  • 我没有图像标签,它只是加载(它没有放在我的html上)
  • is "image.com/img.png" 是src 属性的完整值吗?否则它将无法正常工作。如果您想要部分匹配,请尝试我的更新答案
【解决方案2】:
$(window).load(function(){
    $('img[src="http://image.com/img.png"]').remove();
});

【讨论】:

  • 因为这些代码都不起作用,是否有任何代码可以停止请求
  • 使用 window.stop() 但这会停止当前正在进行的所有请求
【解决方案3】:

加载 DOM 后,停止下载任何资源(window.stop() 用于现代浏览器,document.execCommand("Stop", false) 用于 IE)。然后找到你需要的资源,让浏览器下载。

【讨论】:

  • 太棒了,谢谢。正是我想要在加载所有内容之前关闭覆盖时停止所有资源加载的方法。
【解决方案4】:

您无法使用 JavaScript 取消单个资源的下载。正如@nkamm 回答的那样,您可以调用window.stop() 方法,但随后它会停止下载任何资源(例如按下浏览器中的“停止”按钮)。

如果您尝试停止下载的图像不会在 DOM 中呈现,是否值得取消页面中的所有其他下载?

【讨论】:

  • 我无法理解“是否值得取消您页面中的所有其他下载?”
  • 对不起,我的意思是,window.stop() 方法会取消页面中的所有活动下载,而不仅仅是您要停止加载的图像。因此,您可能会意外停止加载您真正需要的其他资源。
【解决方案5】:

完全控制它的唯一方法是 WebWorkers。

基本上,您创建一个 xhr.worker.js,它只有一个 HTTP 请求来加载图像(通过消息接收 URL)。

他加载图片后,该图片将在浏览器缓存中,因此您只需将 src='' 设置为图片 URL 即可显示它。

如果你杀死特定的webworker,图片加载也会被取消!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2011-03-09
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多