Khả năng tương thích trình duyệt trong JavaScript

Nắm được sự khá biệt giữa các trình duyệt web khác nhau để xử lý từng cái theo cách tốt nhất là vô cùng quan trọng. Vì thế, bạn phải biết được trang web của bạn đang chạy trên trình duyệt nào từ đó mới có thể đưa ra cách xử lý phù hợp.

Đối tượng navigator có sẵn sẽ giúp nhận biết thông tin về trình duyệt mà trang web hiện đang chạy trên.

Các thuộc tính của Navigator

Có một số thuộc tính liên quan đến Navigator mà bạn có thể sử dụng trong trang web của mình. Dưới đây là những thuộc tính của Navigator và mô tả chi tiết về chúng.

Thuộc tínhMô tả
appCodeName

Thuộc tính này là một chuỗi mà chứa tên code của trình duyệt, như Netscape cho Netscape và Microsoft Internet Explorer cho IE.

appVersion

Thuộc tính này là một chuỗi mà chứa phiên bản của trình duyệt cũng như thông tin hữu ích khác như ngôn ngữ và khả năng tương thích của nó.

language

Thuộc tính này chứa hai chữ viết tắt cho ngôn ngữ mà được sử dụng bởi trình duyệt. Chỉ dành cho Netscape.

mimTypes[]

Thuộc tính này là một mảng chứa tất cả kiểu MIME được hỗ trợ bởi Client. Chỉ dành cho Netscape.

platform[]

Thuộc tính này là một chuỗi chứa platform mà trình duyệt được biên dịch. "Win32" cho Hệ điều hành Windows 32 bit.

plugins[]

Thuộc tính này là một mảng chứa tất cả plug-in đã được cài đặt trên client. Chỉ dành cho Netscape.

userAgent[]

Thuộc tính này là một chuỗi mà chứa tên code và phiên bản của trình duyệt. Giá trị này được gửi tới Server nguồn để nhận diện Client.

Các phương thức Navigator

Dưới đây là danh sách các phương thức Navigator và mô tả chi tiết về chúng:

javaEnabled(): Phương thức này quyết định nếu JavaScript được kích hoạt trong Client. Nếu JavaScript được kích hoạt, phương thức này trả về true, nếu không thì nó trả về false.

plugings.refresh: Phương thức này tạo plug-in được cài đặt mới nhất và đặt các mảng plugins với tất cả tên plug-in mới. Chỉ dành cho Netscape.

preference(name,value): Phương thức này cho phép một script đã đánh dấu để nhận và thiết lập một số quyền ưu tiên Netscape. Nếu tham số thứ hai bị bỏ qua, phương thức này sẽ trả về giá trị của quyền ưu tiên đã xác định; nếu không thì, nó thiết lập giá trị đó. Chỉ dành cho Netscape.

taintEnabled(): Phương thức này trả về true nếu dữ liệu hỏng (data tainting) được kích hoạt; nếu không là false.

Kiểm tra trình duyệt (Browser Detection)

Đây là đoạn code JavaScript đơn giản, có thể được sử dụng để tìm tên của một trình duyệt và sau đó gửi trang HTML phù hợp với trình duyệt đó đến người dùng.

<html>
   
   <head>
      <title>Browser Detection Example</title>
   </head>
   
   <body>
      
      <script type="text/javascript">
         <!--
            var userAgent   = navigator.userAgent;
            var opera       = (userAgent.indexOf('Opera') != -1);
            var ie          = (userAgent.indexOf('MSIE') != -1);
            var gecko       = (userAgent.indexOf('Gecko') != -1);
            var netscape    = (userAgent.indexOf('Mozilla') != -1);
            var version     = navigator.appVersion;
            
            if (opera){
               document.write("Opera based browser");
               // Keep your opera specific URL here.
            }
            
            else if (gecko){
               document.write("Mozilla based browser");
               // Keep your gecko specific URL here.
            }
            
            else if (ie){
               document.write("IE based browser");
               // Keep your IE specific URL here.
            }
            
            else if (netscape){
               document.write("Netscape based browser");
               // Keep your Netscape specific URL here.
            }
            
            else{
               document.write("Unknown browser");
            }
            // You can include version to along with any above condition.
            document.write("<br /> Browser version info : " + version );
         //-->
      </script>
      
   </body>
</html>

Kết quả

Mozilla based browser
Browser version info : 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

Theo Tutorialspoint

Bài trước: Image Map trong JavaScript

Bài tiếp: HTTP là gì

Thứ Tư, 01/08/2018 09:58
52 👨 974
0 Bình luận
Sắp xếp theo
    ❖ JavaScript