在警告框中允许多少个字符 - javascript

时间:2011-07-28 19:26:39

标签: javascript web-applications

有谁知道您可以在警告框中显示的最大字符数是多少?

我正在向用户返回错误警报,其中包含每个错误和警告的详细信息,但显然当数据太多时框不再出现。这是我的一些代码:

<?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()我的消息(这就是为什么我认为它使用较少的值,但事实上我很幸运,因为他们不是需要逃脱的角色)。 我肯定会更改那个更适合的警报框,只是想说警报框没有问题。

5 个答案:

答案 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 个字符:

enter image description here

下一张图片来自 Chrome 88.0.4324.104,它的 alert 只能容纳 1833 个字符:

enter image description here

答案 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.