使用 prompt() 我正在生成一些 html 并需要知道我可以放入弹出窗口的最大长度。
我在规范中找不到任何关于此的内容,想知道是否有人可以提供帮助
使用 prompt() 我正在生成一些 html 并需要知道我可以放入弹出窗口的最大长度。
我在规范中找不到任何关于此的内容,想知道是否有人可以提供帮助
如果有人感兴趣,这里有一些真实世界的数字。有的话请补充。
在浏览器控制台中使用以下代码:
s = prompt("a", Array(SOME_NUMBER).join("0")); s.length;
ECMAScript 编程语言规范没有指定任何最大长度。最大长度将是特定于实现的,即基于可用内存。
例如,Chrome (v41) 将 prompt() 的第二个参数限制为 2000 个字符。
如果给定的值比它长,它会截断这 3 个字符串:
first 999 char
'...'
last 998 char
我在 Chrome 72 上进行了测试,我能够输入超过 50K 的字符prompt
这是因为在规范中 prompt() 没有最大长度。为了限制长度,您需要在输入结果后检查结果的长度。
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', ');
}
尝试这个 :
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 小时后放弃了这个游戏(开个玩笑)。