有谁知道你可以在警告框中显示的最大字符数是多少?
我正在向用户返回错误警报,其中包含每个错误和警告的详细信息,但显然当数据太多时,框不再显示。这是我的一些代码:
<?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()
我的消息(这就是为什么我认为它工作的价值较少,但实际上我很幸运,因为他们不是需要转义的字符。我肯定会更改那个更合适的警报框,只是想说警报框没有问题。
我个人鄙视弹出警报。您可以考虑使用内置于页面中的消息框,该消息框可以容纳无限量的内容,并且可以在屏幕上“闪烁”几秒钟出错。
您可以选择禁用整个页面并使消息成为叠加层。原型或jQuery可以快速完成任务。
如果要查看禁用页面的示例,本文使用可以轻松交换消息的进度指示器。 http://edwardawebb.com/web-development/cakephp/disable-page-show-translucent-progress-bar
让我们看看我是否能真正回答你的问题:
Javascript中没有“最大”警报大小。它因浏览器而异。你可能最好保持在1000个以下的字符,因为许多浏览器似乎在999之后开始截断。
我不知道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');
看了你的代码后,我发现你甚至不需要alerts
。如果您正在验证PHP输出,只需在代码中转储几条HTML注释并查看源代码:
<!-- <?php echo 'foo bar baz etc'; ?> -->
如果您必须使用JavaScript,请考虑使用内置控制台来处理调试,因为它不会阻止您的脚本。 Firebug for Firefox是最好的开发工具集恕我直言。
console.log(<?php echo $whatever; ?>);
就alert
而言。我不相信它可以处理的字符串的长度有一个指定的限制,因为mozilla docs将其列为DOM Level 0. Not part of any standard.