1

我的 HTML 中确实有以下代码:

<img src="#" alt="image alternative text" />

是什么src="#"意思?因为在 HTML 中,图像标签不能有空src属性。如果我们没有该属性,Visual Studio 2012 会提出建议。

谢谢

4

5 回答 5

6

当您不希望使用 src 属性加载任何图像时(可能稍后动态加载图像),您需要将 src 设置为空。但是当你这样做时,浏览器仍然会向服务器发送调用。

空 src 的浏览器行为(来源:http: //developer.yahoo.com/performance/rules.html

Internet Explorer 向页面所在的目录发出请求。Safari 和 Chrome 向实际页面本身发出请求。Firefox 3 及更早版本的行为与 Safari 和 Chrome 相同,但 3.5 版解决了此问题 [错误 444931] 并且不再发送请求。当遇到空图像 src 时,Opera 不会做任何事情。

为了避免对服务器的不必要调用,而不是使用空 src,src="#"可以使用形成哈希 url 并且哈希 url 不会发送到服务器。

假设基本网址是: http: //mysite.com/myapp/

src=""-> 绝对网址: http: //mysite.com/myapp/

src="#"-> 绝对网址: http: //mysite.com/myapp/ #

于 2013-10-27T02:25:54.613 回答
1

href锚元素的属性一样,<img src="#">大致相当于<img src="thecurrenturl#" ..> (但请参阅小提琴示例以了解为什么它不完全相同)。

正如它所写的那样,它src永远不会引用有效的图像资源,但大概,某些东西/某人可以稍后更改 URL 或以其他方式操纵元素。由于该src属性是必需的1,因此替换为这样一个有效的“虚拟”值可以安抚诸如 Visual Studio 编辑器之类的工具。

这个小提琴显示了可以通过使用 DOMsrc属性观察到的行为。


1 “src 属性必须存在,并且必须包含有效的非空 URL ..”

于 2013-10-27T01:56:34.117 回答
1

大多数人将其用作链接的占位符,以便在代码编译时不会出现错误。如果程序员给您一些代码,其中“#”作为占位符,他们可能希望您将其与 Web URL 互换。

于 2013-10-27T02:26:30.630 回答
0

很可能只是一个占位符,可以根据事件侦听器动态更改(或者像@FabricioMatte 建议的那样,一种延迟加载技术。)它也可能只是一个绕过任何潜在错误的占位符。

于 2013-10-27T01:58:57.733 回答
0

在中,根据 URL 标准 STD 66 aka RFC 3986src="#",属性值是对当前基本 URL 处文档开头的引用。您需要相当特殊的安排才能使其实际用作对图像的引用。

为什么有人会使用这样的属性是一个不同的问题,另一个问题是该构造应该解决的问题是什么。

于 2013-10-27T06:22:23.833 回答