2011-07-28 33 views
9

Có ai biết số ký tự tối đa bạn có thể hiển thị trong hộp cảnh báo không?Có bao nhiêu ký tự được phép trong hộp cảnh báo - javascript

Tôi đang trả lại cảnh báo lỗi cho người dùng với chi tiết về từng lỗi và cảnh báo nhưng dường như hộp không hiển thị nữa khi có quá nhiều dữ liệu. Dưới đây là một số mã của tôi:

<?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 
?> 

Cảm ơn.

EDIT

Sau khi điều tra, vấn đề của tôi không xuất phát từ năng lực của hộp cảnh báo nhưng trên thực tế rằng tôi cần phải addslashes() thong diep cua Me (đó là lý do tại sao tôi nghĩ rằng nó đã làm việc với giá trị ít hơn , nhưng thực ra tôi chỉ may mắn vì họ không phải là những nhân vật cần phải trốn thoát). Tôi chắc chắn sẽ thay đổi hộp cảnh báo cho một thứ gì đó được chiếm đoạt, chỉ muốn nói rằng không có vấn đề gì với hộp cảnh báo.

+1

Tôi không chắc chắn có bao nhiêu ký tự được phép, nhưng nếu có nhiều dữ liệu chức năng không phải là cách tốt nhất để hiển thị nó. – FishBasketGordo

+0

Nếu bạn đang đi đến điểm mà bạn đang đặt câu hỏi này, tôi khuyên bạn nên sử dụng div phủ lên có hộp "đóng" thay vì 'cảnh báo'. 'Div' sẽ có thể cung cấp những thứ như cuộn, sao chép và dán, định dạng tốt hơn các thông báo lỗi, v.v., v.v. –

+0

Tôi không chắc giới hạn ký tự là gì cho cảnh báo nhưng tôi đoán là nó phụ thuộc vào trình duyệt và OS/thiết bị. Bạn đã xem xét chỉ hiển thị thông báo lỗi flash trong DIV thay thế? – johnmdonahue

Trả lời

2

Cá nhân tôi coi thường cảnh báo bật lên. Bạn có thể xem xét sử dụng hộp thư được tích hợp vào trang có thể chứa lượng nội dung không xác định và có thể bị "lóe lên" trên màn hình trong vài giây do lỗi.

Bạn có thể tùy ý tắt toàn bộ trang và đặt thông báo thành lớp phủ. Prototype hoặc jQuery sẽ thực hiện công việc nhanh chóng của một trong hai tác vụ.

Nếu bạn muốn xem ví dụ về vô hiệu hóa trang, bài viết này sử dụng chỉ báo tiến trình có thể dễ dàng hoán đổi cho một thư. http://edwardawebb.com/web-development/cakephp/disable-page-show-translucent-progress-bar

+0

Mặt khác, FF5 hiện làm cho cửa sổ bật lên cảnh báo trên mỗi tab dưới dạng lớp phủ giả bên trong, thay vì cửa sổ chế độ hệ điều hành gián đoạn-tất cả mọi thứ trong trình duyệt. –

+0

@Marc B, Điều đó rất hay. Tôi nghĩ Chrome hoạt động theo cùng một cách vì mỗi tab là quá trình riêng của nó. – Eddie

+0

@Marc B: Các cảnh báo sẽ vẫn chuyển đổi các tab của bạn, nhưng bạn có thể điều hướng khỏi chúng mà không cần nhấp vào :) –

11

Hãy xem nếu tôi thực sự có thể trả lời câu hỏi của bạn:

Không có kích thước cảnh báo 'tối đa' trong Javascript. Nó thay đổi từ trình duyệt đến trình duyệt. Mặc dù bạn có thể là tốt nhất ở dưới 1000 ký tự, vì nhiều trình duyệt dường như bắt đầu cắt sau 999.

+0

Có vẻ như nó cắt ngắn khi bạn đạt đến giới hạn. Tôi đoán tôi sẽ tìm một cách khác vì cảnh báo không hiệu quả với tôi. Cảm ơn. – talnicolas

+0

Không sao cả. Vui mừng được giúp đỡ. – dwmcc

0

Tôi không biết về giới hạn trong cảnh báo(), nhưng tôi khá chắc chắn rằng mã của bạn sẽ sản xuất một lỗi cú pháp JS.

Đặc biệt, hãy nhớ rằng bạn không thể đơn giản sử dụng chuỗi trong nhiều dòng trong javascript. Vui lòng cho chúng tôi thấy đầu ra của tập lệnh PHP của bạn.

Ví dụ:

//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

nó không tạo ra lỗi khi nó hoạt động khi tôi chỉ có một vài lỗi/cảnh báo – talnicolas

+0

Vì vậy, hãy hiển thị kết quả được tạo ra mà bạn sẽ nhận được khi nó không hoạt động. Đôi khi tôi thấy các hộp cảnh báo lấp đầy màn hình hoàn chỉnh của tôi bằng mã. –

0

Sau khi xem xét mã của bạn, tôi thấy không có lý do tại sao bạn thậm chí cầnalerts. Nếu bạn đang xác nhận sản lượng PHP, chỉ cần đổ một bình luận vài HTML trong mã và xem bạn nguồn:

<!-- <?php echo 'foo bar baz etc'; ?> --> 

Nếu bạn phải được sử dụng JavaScript, hãy xem xét sử dụng được xây dựng trong giao diện điều khiển để xử lý gỡ lỗi của bạn vì nó sẽ không chặn các tập lệnh của bạn. Firebug cho Firefox là bộ công cụ dev tốt nhất IMHO.

console.log(<?php echo $whatever; ?>); 

Có liên quan đến số alert.Tôi không tin rằng có giới hạn được chỉ định cho độ dài của chuỗi mà nó có thể xử lý như mozilla docs liệt kê nó là DOM Level 0. Not part of any standard.

Các vấn đề liên quan