我有一个图像,我将动态填充src稍后与javascript,但为了方便,我希望图像标签存在于页面加载,但只是不显示任何东西。我知道<img src= " />是无效的,那么最好的方法是什么?
当前回答
我有段时间没这么做了,但我也经历过一次。
<img src="about:blank" alt="" />
是我最喜欢的—//:0表示您将尝试在端口0 (tcpmux端口?)上与原始服务器建立HTTP/HTTPS连接—这可能是无害的,但我宁愿不这样做。哎呀,浏览器可能只看到端口0,甚至不发送请求。但我还是不希望你这么说因为这可能不是你想说的。
无论如何,在我测试的所有浏览器中,about:blank的渲染实际上都非常快。我只是把它扔到W3C验证器中,它没有抱怨,所以它甚至可能是有效的。
编辑:不要这样做;它不能在所有浏览器上工作(它会显示一个“破碎的图像”图标,正如在这个答案的评论中指出的那样)。使用<img src='data:…下面的解决方案。或者如果你不关心有效性,但仍然想避免对服务器的多余请求,你可以执行<img alt="" />,不带src属性。但这是无效的HTML,所以要小心选择。
Test Page显示了一大堆不同的方法:http://desk.nu/blank_image.php—提供了各种不同的文档类型和内容类型。-正如下面评论中提到的,使用Mark Ormston的新测试页面:http://memso.com/Test/BlankImage.html
其他回答
我建议动态添加元素,如果使用jQuery或其他JavaScript库,它是相当简单的:
http://api.jquery.com/appendTo/ http://api.jquery.com/prependTo/ http://api.jquery.com/html/
再看看prepend和append。否则,如果你有一个这样的图像标签,你想让它有效,那么你可以考虑使用一个虚拟的图像,如1px透明gif或png。
正如评论中所写的,这种方法是错误的。
我没有找到这个答案之前,但根据W3规范有效的空src标签将是一个锚链接#。
示例:src="#", src="#empty"
页面验证成功,没有发出额外的请求。
在我看来,这些天最好的简短,理智和有效的空img src的方式是这样的:
<img src="data:," alt>
or
<img src="data:," alt="Alternative Text">
第二个例子显示“Alternative Text”(加上Chrome和IE中的broken-image-icon)。
"data:,"是一个有效的URI。空媒体类型默认为文本/纯。所以它表示一个空文本文件,相当于“data:text/plain”,
OT:所有浏览器都能理解纯alt。你可以省略="",这在HTML规范中是隐式的。
根据本文,使用真正空白、有效且高度兼容的SVG:
src = " +:形象/ svg xml数据;charset = utf8, 3Csvg % 20xmlns = http://www.w3.org/2000/svg’排% 3C / svg %排”
与任何SVG一样,它的默认大小为300x150px,但是您可以在img元素的默认样式中使用它,因为在实际实现中任何情况下都可能需要它。
<img src="invis.gif" />
gif是一个单像素的透明gif。这在未来的浏览器版本中不会中断,并且自90年代以来一直在传统浏览器中工作。
PNG也可以工作,但在我的测试中,GIF是43字节,PNG是167字节,所以GIF赢了。
另外,不要忘记Alt标签,验证器也喜欢它们。
推荐文章
- c#消毒文件名
- JavaScript:客户端验证与服务器端验证
- 在HTML中还有其他有用的空格码吗,比如半空格的 , em-spaces, en-spaces等等?
- 验证多个列的唯一性
- 输入触发器按钮单击
- Angular 2模板中的标签是什么意思?
- 如何设置身体高度溢出滚动
- 在输入type="number"时禁用webkit的旋转按钮?
- 如何在另一个元素之后添加一个元素?
- 我如何有效地解析HTML与Java?
- “ ”和“”有什么区别?
- 如何使用JavaScript代码获得浏览器宽度?
- 防止滚动条增加到Chrome页面的宽度
- 使用图像而不是单选按钮
- 我可以嵌套一个<按钮>元素内< >使用HTML5?