2011-06-19 50 views
12

Tôi biết thực tế là đối tượng FileReader không có sẵn trong Safari 5.0.5. Tôi có một kịch bản mà sử dụng nó và nghĩ rằng tôi muốn chỉ có thể phát hiện xem các đối tượng tồn tại để chạy một số mã thay thế, như được gợi ý ở đây,Phát hiện trình phát hiện tệp PDF trong Safari

http://www.quirksmode.org/js/support.html

Vì vậy, mã của tôi là,

if(FileReader) 
{ 
    //do this 

}else{ 

    //the browser doesn't support the FileReader Object, so do this 
} 

Vấn đề là, tôi đã thử nghiệm nó trong Safari và một khi nó chạm vào câu lệnh if tôi nhận được lỗi này và tập lệnh ngừng chạy.

Tham chiếuLỗi: Không tìm thấy biến: FileReader

Vì vậy, rõ ràng đó không phải là cách tốt nhất để giải quyết? Bất kỳ ý tưởng tại sao điều này không hoạt động?

+0

được hỗ trợ FileReader trong Safari 5.1.5? Tôi cũng gặp lỗi trong 5.1.5. –

+0

Không. Có thể trong 5.2: http://caniuse.com/filereader – forresto

Trả lời

7

Bạn có thể viết if (typeof FileReader !== "undefined")

Bạn cũng có thể sử dụng thư viện Modernizr để kiểm tra cho bạn.

+0

Tuyệt vời, cảm ơn rất nhiều vì điều đó – barry

+0

Tại sao nó đã bị xóa ?! – jayarjo

+0

@jayaro: Cái gì? – SLaks

28

Tôi tin rằng trong trường hợp của bạn, bạn có thể nhận được ngay với một tấm séc đơn giản:

if(window.FileReader) { 
    //do this 
} else { 
    //the browser doesn't support the FileReader Object, so do this 
} 

kiểm cho các loại nếu bạn thực sự muốn thật chi tiết và kén cá chọn canh.

+0

Đồng ý. Bạn phải yêu cầu window.FileReader nếu không một tham chiếu không bắt buộc sẽ xảy ra (quan sát trên Android 2.3) –

1

Hoặc bạn có thể làm một cái gì đó như thế này.

if('FileReader' in window) { 
    // FileReader support is available 
} else { 
    // No support available 
} 
Các vấn đề liên quan