Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 HTML5进度范围的最大值和值:值太大?_Javascript_Html_Numbers_Progress Bar_Specifications - Fatal编程技术网

Javascript HTML5进度范围的最大值和值:值太大?

Javascript HTML5进度范围的最大值和值:值太大?,javascript,html,numbers,progress-bar,specifications,Javascript,Html,Numbers,Progress Bar,Specifications,考虑以下MWE: <!DOCTYPE html> <html> <head> <title>Progress test</title> </head> <body> <progress id="progress"></progress> <script> progress.max = 10000000000; progress.value = 10000000000 /

考虑以下MWE:

<!DOCTYPE html>
<html>
<head>
<title>Progress test</title>
</head>

<body>

<progress id="progress"></progress>

<script>
progress.max = 10000000000;
progress.value = 10000000000 / 2;
</script>

</body>
</html>

进度测试
progress.max=1000000000;
progress.value=1000000000/2;
它曾经在Internet Explorer、Mozilla Firefox、Google Chrome和Opera中工作。但今天我意识到它在谷歌Chrome上已经不起作用了;显然,1000000000和1000000000/2的值太大

这让我想知道官方规范对此有何解释。他们是否保证这么大的数字可以工作(在这种情况下,谷歌Chrome中有一个bug),或者我的数字高于保证工作的最大值(在这种情况下,我很幸运它可以在IE和FF中工作)?

关于:

value和max属性(如果存在)必须具有有效浮点数的值

A的定义如下:

如果字符串包含以下内容,则该字符串是有效的浮点数:

(可选)一个“-”(U+002D)字符。 以下一项或两项,按给定顺序: 一个或多个ASCII数字的序列。 单个“.”(U+002E)字符。 一个或多个ASCII数字的序列。 可选: “e”(U+0065)字符或“e”(U+0045)字符。 (可选)一个“-”(U+002D)字符或“+”(U+002B)字符。 一个或多个ASCII数字的序列

后来,它说解析浮点数值的算法应该从IEEE 754双精度浮点数中选择一个值

根据问题:

IEEE 754双精度的最大值约为1.8×10^308。因此,您的数字
1000000000
很大程度上小到足以在IEEE 754双精度中表示,并且应该由任何有效的HTML5浏览器正确解释。

说明:

value和max属性(如果存在)必须具有有效浮点数的值

A的定义如下:

如果字符串包含以下内容,则该字符串是有效的浮点数:

(可选)一个“-”(U+002D)字符。 以下一项或两项,按给定顺序: 一个或多个ASCII数字的序列。 单个“.”(U+002E)字符。 一个或多个ASCII数字的序列。 可选: “e”(U+0065)字符或“e”(U+0045)字符。 (可选)一个“-”(U+002D)字符或“+”(U+002B)字符。 一个或多个ASCII数字的序列

后来,它说解析浮点数值的算法应该从IEEE 754双精度浮点数中选择一个值

根据问题:


IEEE 754双精度的最大值约为1.8×10^308。因此,您的数字
1000000000
很大程度上很小,足以在IEEE 754双精度中表示,并且应该由任何有效的HTML5浏览器正确解释。

您只需要一个与像素宽度一样大的数字,无论如何,转换为百分比,然后继续。@dandavis:您是对的,解决方法很明显,但是由于我对规范感兴趣,我想知道这里保证的是什么在规范中(从1000000000开始应该可以工作)@dandavis:谢谢,所以它是一个bug(虽然它只会出现在少数示例中)。我认为它也表示类似“非负浮点数”,只要它是一个有效的浮点数,就应该可以了,这意味着
9007199254740992
下的任何内容,但规范中的绝对数字没有真正的限制,可能是他们称之为“特定于供应商”的,或者取决于浏览器,如果你只需要使用
1
而不是
1000000000
,他们可能会认为支持这么大的数字是胡说八道?不管怎样,你只需要一个像素宽的数字,转换成百分比,然后继续。@dandavis:你是对的,解决办法很明显,但是由于我对规范感兴趣,我想知道这里保证的是什么在规范中(从1000000000开始应该可以工作)@dandavis:谢谢,所以它是一个bug(虽然它只会出现在少数示例中)。我认为它也表示类似“非负浮点数”,只要它是一个有效的浮点数,就应该可以了,这意味着
9007199254740992
下的任何内容,但规范中的绝对数字没有真正的限制,可能是他们称之为“特定于供应商”的,或者取决于浏览器,既然你可以使用
1
而不是
1000000000
,他们可能认为支持这么大的数字是胡说八道?谢谢你的回答!谢谢你的回答!