2011-06-22 37 views
6

Tôi thực sự không biết mình đang làm gì sai ở đây. Tôi không thể nhận được Datejs để phân tích cú pháp chính xác "12:00 pm" tuy nhiên, có vẻ như nó hoạt động tốt vào những ngày khác. Dưới đây là một đoạn trích từ debugger Firefox:Datejs - Sự cố với 12:00 pm

enter image description here

+1

Làm việc tốt cho tôi trong Chrome chạy trong bảng điều khiển trực tiếp trên trang web của datejs – Matt

+0

Vâng, điều đó cũng làm việc cho tôi, thực sự là –

+0

Bạn đang sử dụng phiên bản DateJS nào ở trên? – Matt

Trả lời

16

Tải về phiên bản mới nhất của Datejs từ SVN không phải là phiên bản trong "download" phần.

+6

yup, đã hoạt động: http://datejs.googlecode.com/svn/trunk/build/date-en-US.js –

0

Hãy thử gói mã trong IIFE.

<!DOCTYPE html> 
<html> 
    <body> 
     <input type=text id=d onkeyup="parsedate()"> 
     </input> 
     <br> 
     <span id=output></span> 
     <script type="text/javascript" src="../../../static/js/date.js"></script> 
     <script> 
      (function() { 
        parsedate = function() { 
         var input = document.getElementById('d').value; 
         var output = document.getElementById('output'); 
         var d = Date.parse(input); 
         if (d !== null) { 
          output.innerHTML = d.toString(); 
         } else { 
          output.innerHTML = "------" 
         } 
        } 
       }()); 
     </script> 
    </body> 
</html> 

Các IIFE là

(function(){ 
    //code 
}()); 

Những gì tôi đang tò mò về lý do tại sao là FireFox cư xử theo cách này. Tôi biết họ đã thêm bản cập nhật bảo mật một vài năm trở lại để ngăn bạn ghi đè lên các hàm Date.prototype, nhưng tại sao một IIFE có khả năng truy cập phạm vi này?