2011-07-28 73 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.