提示最大长度

时间:2013-04-12 10:54:44

标签: javascript html specifications

使用prompt()我生成一些html,并且需要知道我可以在弹出窗口中放入的最大长度。

我在规范中找不到任何关于此的内容,想知道是否有人可以提供帮助

6 个答案:

答案 0 :(得分:8)

如果有人感兴趣,这里有一些现实世界的数字。如果您有任何更多,请添加更多。

在浏览器控制台中使用以下代码:

s = prompt("a", Array(SOME_NUMBER).join("0")); s.length;

  • Chrome 43 - 2000 ,带有@Redzarf提及的省略号。
  • Firefox 39 - 达到 10,000,000 然后停止测试(浏览器在执行时运行缓慢。您可能会收到“非响应式脚本'警报”。
  • IE 11 - 达到 10,000,000 然后停止测试。

答案 1 :(得分:2)

ECMAScript编程语言规范未指定任何最大值 长度。最大长度将是特定于实现的,即基于可用内存。

答案 2 :(得分:0)

这是因为规范中的prompt()没有最大长度。为了限制长度,您需要在输入结果后检查结果的长度。

答案 3 :(得分:0)

karthick响应是正确的,但您可以通过这种方式手动检查输入提示的长度,强制用户只输入少于一定数量的字符,或取消:

var maxLength = 25;
var userData = -1;

while (userData == -1 || (userData != null && userData.length > maxLength)) {
    userData = window.prompt('Please enter some data. It should be no more than ' + maxLength + ' characters in length', ');
}

答案 4 :(得分:0)

我在Chrome 72上进行了测试,我能够在prompt中输入超过5万个字符。

答案 5 :(得分:-2)

试试这个:

var rep = "+" ;
while (rep != null)
{
    // document.write(rep.length + " " + rep + "<br>") ; // alternate code
    document.getElementById("res").innerHTML = rep.length + " " + rep + "<br>" ;
    rep = prompt("Input length was : " + rep.length, rep + rep);
}

只要您回复“取消”,导航器就会显示最后一个输入长度和 相应的字符串。在262144之后取消。然后进一步测试。 对于非常大的长度,刷新显示可能需要很长时间。 我没有实际证明显示的字符串具有正确的长度。 在262144“+”的情况下,我开始在视觉上统计这个字符串,但是我在32个小时之后放弃了这个游戏(开玩笑)。