有谁知道您可以在警告框中显示的最大字符数是多少?
我正在向用户返回错误警报,其中包含每个错误和警告的详细信息,但显然当数据太多时框不再出现。这是我的一些代码:
<?php
//Two arrays are created in php, one with the errors, one with the warnings.
?>
<script type="text/javascript">
alert("<?php
if(count($err) != 0){
$errorfound = True;
echo 'Error:\n\n';
foreach($err as $message){
echo '\t' . $message . '\n';
}
}
if(count($warn) != 0){
echo '\n\nWarning:\n\n';
foreach($warn as $mess){
echo '\t' . $mess . '\n';
}
}?>");
</script>
<?php
//app continues if no error was found
?>
感谢。
修改
经过调查,我的问题并非来自警报框的容量,但事实上我需要addslashes()
我的消息(这就是为什么我认为它使用较少的值,但事实上我很幸运,因为他们不是需要逃脱的角色)。
我肯定会更改那个更适合的警报框,只是想说警报框没有问题。
答案 0 :(得分:13)
让我们看看我是否能真正回答你的问题:
Javascript中没有“最大”警报大小。它因浏览器而异。你可能最好保持在1000个以下的字符,因为许多浏览器似乎在999之后开始截断。
答案 1 :(得分:2)
我个人鄙视弹出警报。您可以考虑使用内置在页面中的消息框,该消息框可以容纳无限量的内容,并且可以在屏幕上“闪烁”几秒钟。
您可以选择停用整个页面并使邮件成为叠加层。原型或jQuery可以快速完成任务。
如果您想查看禁用页面的示例,本文使用可以轻松交换消息的进度指示器。 http://edwardawebb.com/web-development/cakephp/disable-page-show-translucent-progress-bar
答案 2 :(得分:1)
测试代码:
<html>
<head>
<script>
function test ()
{
let i;
let nums = "";
for ( i = 0; i <= 9999; i++ ) // ◄█■ GENERATE STRING WITH 48890 CHARS.
nums += i.toString() + " ";
alert( nums ); // ◄█■ DISPLAY STRING IN ALERT.
}
</script>
</head>
<body onload="test()">
</body>
</html>
显示 alert
时,复制文本,粘贴到 Microsoft Word 中,并使用“计数字符”工具,下一个图像是来自 Firefox 84.0.2 的文本,10000 个字符:
下一张图片来自 Chrome 88.0.4324.104,它的 alert
只能容纳 1833 个字符:
答案 3 :(得分:0)
我不知道alert()中的限制,但我很确定你的代码会产生JS语法错误。
特别要记住,你不能简单地在javascript中使用多行中的字符串。请向我们展示PHP脚本的输出。
示例:
//will not work
alert('this
is
an
alert');
//This will work:
alert('this '+
'is '+
'an '+
'alert');
//this works too:
alert('this \
is \
an \
alert');
答案 4 :(得分:0)
在查看您的代码后,我发现您甚至没有理由需要 alerts
。如果您正在验证PHP输出,只需在代码中转储几条HTML注释并查看源代码:
<!-- <?php echo 'foo bar baz etc'; ?> -->
如果必须使用JavaScript,请考虑使用内置控制台来处理调试,因为它不会阻止您的脚本。 Firebug for Firefox是最好的开发工具集IMHO。
console.log(<?php echo $whatever; ?>);
就alert
而言。我认为mozilla docs将其列为DOM Level 0. Not part of any standard.