2011-07-28 34 views
9

有谁知道可以在警告框中显示的最大字符数是多少?在警告框中允许多少个字符 - javascript

我向用户返回了错误警报,并提供了每个错误和警告的详细信息,但显然当数据太多时该框不再显示。这里是我的一些代码:

<?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()我的消息(这就是为什么我认为这是用更少的值工作,但事实上我只是幸运的,因为他们不是需要逃跑的角色)。 我肯定会更改那个提醒框来提供更多的东西,只是想说这个提醒框没有问题。

+1

我不确定允许多少个字符,但如果是那么多的数据,'alert'函数不是显示它的最佳方式。 – FishBasketGordo

+0

如果你已经到了问你这个问题的地步,我建议你用一个“关闭”框而不是“alert”来覆盖div。 'div'将能够提供诸如滚动,复制和粘贴,显着更好的格式化错误消息等等等等。 –

+0

我不确定警报的字符限制是什么,但我的猜测是它取决于浏览器和操作系统/设备。您是否考虑过在DIV中只显示闪存错误消息? – johnmdonahue

回答

2

我个人鄙视弹出提醒。您可以考虑使用内置于页面中的消息框,该消息框可以保存无限量的内容,并且可以在错误时在屏幕上“闪现”几秒。

您可以选择禁用整个页面并使消息成为叠加层。 Prototype或jQuery可以快速完成任一任务。

如果您想查看禁用页面的示例,本文使用可轻松交换消息的进度指示器。 http://edwardawebb.com/web-development/cakephp/disable-page-show-translucent-progress-bar

+0

另一方面,FF5现在使警报按每个选项卡弹出为伪内联叠加层,而不是浏览器范围内的所有中断所有操作系统模式窗口。 –

+0

@Marc B,非常好。由于每个标签都是自己的过程,因此我认为Chrome以相同的方式执行。 – Eddie

+0

@Marc乙:警报仍然会切换您的标签,但你可以不用点击:)离开他们导航 –

11

让我们看看我能不能真正回答你的问题:

有在Javascript中没有“最大”警报大小。它因浏览器而异。尽管许多浏览器似乎开始在999之后截断,但您可能最好保留在1000个字符以内。

+0

是的,显然它会在达到极限时截断。我想我会找到另一种方式,因为警报不适合我。谢谢。 – talnicolas

+0

没问题。乐意效劳。 – dwmcc

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'); 
+0

因为它在工作时它不会产生错误,所以当我只有一些错误/警告时 – talnicolas

+0

因此,显示当它不起作用时所得到的生成输出。我有时会看到一些警告框,这些警告框用代码填满了我的完整屏幕。 –

0

看你的代码后,我明白为什么你甚至需要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.