Đôi khi chúng ta viết code JavaScript mà để code độc lập riêng mình thì nó chạy rất tốt, nhưng khi gắn cái của mình vào những chỗ có sẵn, hoặc những có có JavaScript thì code của mình tịt ngòi, không chạy được, không rõ nguyên nhân. Vậy làm sao tránh gặp những lỗi rắc rối này?
1) Tránh giá trị Null
Đôi khi chúng ta không thể xác định được giá trị của biến mình đang dùng có bị null hay không, nhất là trong những trường hợp Corssbrowser.
Ví dụ: ở IE bạn có thể sử dụng parentElement nhưng Firefox và các trình duyệt khác không bao giờ biết parentElement là cái gì, tuy nhiên khi bạn viết parentNode thì tất cả trình duyệt đều hiểu và giá trị luôn khác null. Do đó, cách tốt nhất chúng ta nên viết là:
var pNode = this.parentElement || this.parentNode;
Hay như đối tượng event ( window.event), trình duyệt firefox không hiểu nó là cái quái gì hết, Firefox chỉ hiểu event chỉ khi nào đối tượng có xảy ra 1 sự kiện nào đó, và trong sự kiện đó lập trỉnh viên phải tự thêm một argument bất kỳ để firefox gửi đối tượng event vào trong đó.
Ví dụ:
trong JavaScript chúng ta có thể viết:
function dMouseOver()
{
var evt = window.event.srcElement;
}
Với Firefox code này bó tay, chúng ta phải viết lại
function dMouseOver(e)
{
var evt = e.srcElement;
}
Như vậy trong 2 cách viết đó, chúng ta phải gộp lại thành 1 code chuẩn duy nhất mà có thể chạy trên tất cả các trình duyệt
function dMouseOver(e)
{
e = e || window.event;
var evt = e.srcElement;
}
No comments:
Post a Comment