Javascript 在srcset中定义多个描述符安全吗?

Javascript 在srcset中定义多个描述符安全吗?,javascript,html,responsive-design,Javascript,Html,Responsive Design,我需要存储图像的宽度和高度(每种大小),以便稍后通过JS解析它们。我使用的语法定义了w和h描述符: <img srcset="small.jpg 600w 400h, medium.jpg 1024w 500h, large.jpg 1600w 900h" alt=""> 首先,h描述符在规范中被称为“future-compat-h”描述符。它被添加到解析规则中,以便浏览器(仅支持宽度描述符)在开发人员指定和使用h描述符时不会失败 这意

我需要存储图像的宽度和高度(每种大小),以便稍后通过JS解析它们。我使用的语法定义了
w
h
描述符:

<img srcset="small.jpg 600w 400h, 
          medium.jpg 1024w 500h,
          large.jpg 1600w 900h"
  alt="">

首先,h描述符在规范中被称为“future-compat-h”描述符。它被添加到解析规则中,以便浏览器(仅支持宽度描述符)在开发人员指定和使用h描述符时不会失败

这意味着它可以保存以供使用,但目前任何浏览器都不支持(甚至没有指定如何为高度受限的图像写入sizes属性的确切方式)。但请注意,picturefill 2.x无法正确解析此类
srcset
字符串,您应该使用以下任一方法:


首先,规范中将h描述符称为“future-compat-h”描述符。它被添加到解析规则中,以便浏览器(仅支持宽度描述符)在开发人员指定和使用h描述符时不会失败

这意味着它可以保存以供使用,但目前任何浏览器都不支持(甚至没有指定如何为高度受限的图像写入sizes属性的确切方式)。但请注意,picturefill 2.x无法正确解析此类
srcset
字符串,您应该使用以下任一方法:


No
srcset
实施目前考虑了高度,但这是长期计划的一部分,因此,这些
h
描述符最终可能会影响显示的源。如果您正在编写的JS行为是为了匹配本机实现处理
h
描述符的方式,那么我会走这条路,但要谨慎行事,没有办法说将来会有什么样的规范/实现。如果没有,我肯定会坚持使用
data-
属性


旁边一点:你需要一个
size
。如果省略该属性,则行为仍默认为
100vw
,但需要进行验证。

No
srcset
实现目前考虑了高度,但它是长期计划的一部分,因此,这些
h
描述符可能最终会影响显示的源。如果您正在编写的JS行为是为了匹配本机实现处理
h
描述符的方式,那么我会走这条路,但要谨慎行事,没有办法说将来会有什么样的规范/实现。如果没有,我肯定会坚持使用
data-
属性

旁边一点:你需要一个
size
。如果省略该属性,则行为仍默认为
100vw
,但这是验证所必需的。

此处是
规范的共同作者

技术上是安全的,只是因为我们明确允许
h
描述符用于将来的compat。只要您正确使用它(对于实际高度,与
w
相同),当我们最终启用对基于高度的选择的支持时,您应该是安全的

但你不能做任何其他事情;任何无法识别的描述符(除了
x
w
h
)都会导致候选人被淘汰。

此处是
规范的合著者

技术上是安全的,只是因为我们明确允许
h
描述符用于将来的compat。只要您正确使用它(对于实际高度,与
w
相同),当我们最终启用对基于高度的选择的支持时,您应该是安全的

但你不能做任何其他事情;任何无法识别的描述符(除了
x
w
h
)都会导致候选人被淘汰。

高度完全在规范中,所以我会说它不安全。高度完全在规范中,所以我会说它不安全。
<img srcset="small.jpg 600w, 
          medium.jpg 1024w,
          large.jpg 1600w"
  data-my-sizes="600x400 1024x500 1600x900"
  alt="">