2008-09-23 22 views
10

Có chức năng javascript nào tôi có thể sử dụng để phát hiện xem phiên bản Silverlight cụ thể có được cài đặt trong trình duyệt hiện tại không?Phát hiện qua javascript cho dù Silverlight đã được cài đặt

Tôi đặc biệt quan tâm đến phiên bản Silverlight 2 Beta 2. Tôi không muốn sử dụng phương pháp mặc định của việc có một hình ảnh phía sau điều khiển Silverlight được hiển thị nếu plugin Silverlight không tải.

Edit: Từ liên kết được cung cấp trong câu trả lời được chấp nhận:

Bao gồm Silverlight.js (từ Silverlight SDK)

Silverlight.isInstalled("2.0"); 
+2

Lưu ý rằng bạn cần chỉ định phiên bản phụ (".0"). Việc thử 'Silverlight.isInstalled (" 2 ")' hoạt động trong Firefox, nhưng không hoạt động trong IE. – Husky

+0

@ Husky không có lý do gì để không đặt '.0' vào, vì nó sẽ làm cho nó hoạt động trong IE và bất kỳ phiên bản phụ Silverlight nào được cài đặt trên máy khách như' .1' sẽ vẫn trả về true khi kiểm tra '.0 ' – Blowsie

Trả lời

0
var hasSilverlight = Boolean(window.Silverlight); 

var hasSilverlight2 = hasSilverlight && Silverlight.isInstalled('2.0'); 

Etc ....

+0

' Boolean (window.Silverlight) 'chỉ kiểm tra sự hiện diện của thư viện Javascript trên trang, không phải là plugin Silverlight. –

9

Hãy thực sự sử dụng kịch bản mới nhất có sẵn tại http://code.msdn.microsoft.com/silverlightjs cho các bản cập nhật mới nhất. Điều này có một số bản sửa lỗi trong đó.

+0

Đó không còn là mới nhất và, trên thực tế, đã "được gỡ bỏ". –

+0

@JoeMabel bất kỳ cơ hội nào bạn biết được một tập lệnh có thể được tìm thấy ở đâu không được gỡ bỏ? – Peter

+0

Sợ không. Tôi không biết những gì sẽ là cách ưa thích để làm điều này ngay bây giờ. –

0
 if (Silverlight.isInstalled("1.0")) { 
      try { 
       alert("Silverlight Version 1.0 or above is installed"); 
      } 
      catch (err) { 
       alert(err.Description); 
      } 
     } 
     else { 
      alert("No Silverlight is installed"); 
     } 

từ video này.

Silverlight.isInstalled luôn đúng vì vậy chuỗi phiên bản như "1.0" phải được cung cấp để làm cho nó hữu ích.

+0

«Silverlight.isInstalled luôn đúng» Điều này không đúng. Tôi không sử dụng Silverlight, nhưng trên một trang web bao gồm SDK, 'Silverlight.isInstalled()' trả về đúng 'false'. –

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