Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载图像时如何删除显示的问号?_Javascript_Image - Fatal编程技术网

Javascript 下载图像时如何删除显示的问号?

Javascript 下载图像时如何删除显示的问号?,javascript,image,Javascript,Image,当用户单击按钮时,图像将被下载 当它们被下载时,Safari会显示一个问号 我怎样才能摆脱这个 我考虑了onerror事件侦听器,但这不是一个错误。下载图像只需花费时间。这并不是说图像不在指定的src 在ajax调用之后,图像标记被添加到页面的dom中。当图像元素等待访问实际图像时,它会显示这个恼人的问号 我怎样才能摆脱它?在显示图像之前,先预加载图像 或者,在加载图像时,具有作为占位符的微调器的图像 或者,等待图像加载后再显示。隐藏包装元素,直到图像完全加载。您可以将onload事件挂接到图像

当用户单击按钮时,图像将被下载

当它们被下载时,Safari会显示一个问号

我怎样才能摆脱这个

我考虑了onerror事件侦听器,但这不是一个错误。下载图像只需花费时间。这并不是说图像不在指定的src

在ajax调用之后,图像标记被添加到页面的dom中。当图像元素等待访问实际图像时,它会显示这个恼人的问号


我怎样才能摆脱它?

在显示图像之前,先预加载图像

或者,在加载图像时,具有作为占位符的微调器的图像


或者,等待图像加载后再显示。

隐藏包装元素,直到图像完全加载。您可以将onload事件挂接到图像,然后让它在完成时显示包装元素

您可以等待图像本身加载。在设置
src
属性之前,创建image元素并添加
onload
回调。在回调中,您可以将图像添加到dom。

从HTML源代码中删除
-标记。将Javascript作为
Image()
对象加载图像。将onload处理程序添加到图像。让这些onload图像创建
标记并将它们插入DOM


我不能预加载,因为直到用户按下按钮,src才知道。这个按钮启动一个ajax调用,然后用动态图像元素填充页面。你说的微调器是什么意思?我认为第三个选项最简单,与Diodeus@Hiro-是的,第三种选择与迪奥德乌斯建议的类似。微调器-如中所示,显示图像的动画
.gif
。此图像位于正在加载的图像的“前面”。因此,当图像完全加载时,微调器不再显示。这会在用户等待他们的图像时产生移动的影响。这似乎是最简单的,因为我已经针对错误执行了此操作。我建议不要尝试解决非问题。这就是浏览器的工作方式。该浏览器的用户知道这一点。
Image image = new Image();
image.onload = function() {
     // insert image into your DOM 
}
image.src = 'yourImage.jpg';