Làm cách nào để sử dụng javascript/jQuery/etc để phát hiện xem Flash có được cài đặt hay không, hiển thị một div chứa thông tin thông báo cho người dùng rằng họ cần cài đặt flash không?Làm thế nào tôi có thể phát hiện nếu Flash được cài đặt và nếu không, hiển thị div ẩn để thông báo cho người dùng?
Trả lời
Sử dụng swfobject. nó sẽ thay thế một div bằng flash nếu nó được cài đặt. xem: http://code.google.com/p/swfobject/
Bạn có thể sử dụng navigator.mimeTypes.
if (navigator.mimeTypes ["application/x-shockwave-flash"] == undefined)
$("#someDiv").show();
Nếu swfobject
sẽ không đủ, hoặc bạn cần phải tạo ra một cái gì đó một chút bespoke hơn, hãy thử này:
var hasFlash = false;
try {
hasFlash = Boolean(new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));
} catch(exception) {
hasFlash = ('undefined' != typeof navigator.mimeTypes['application/x-shockwave-flash']);
}
Nó hoạt động với 7 và 8.
hoạt động tốt nếu bạn chỉ muốn phát hiện nếu nó được cài đặt và không nhất thiết phải hiển thị một swf một trong hai cách. – ctrlShiftBryan
Phải sửa đổi điều này thành: var hasFlash = false; \t \t thử { \t \t var fo = (navigator.mimeTypes && navigator.mimeTypes ['application/x-shockwave-flash'])? navigator.mimeTypes ['application/x-shockwave-flash']. enabledPlugin: 0; \t \t nếu (fo) hasFlash = true; \t \t} bắt (e) { \t \t nếu (navigator.mimeTypes ['application/x-shockwave-flash']! = Undefined) hasFlash = true; \t \t}" – invertedSpear
rằng sẽ không làm việc trên IE7, như bạn không thử nghiệm phần ActiveXObject – Kevin
Tôi đã từng phát hiện của Adobe kit, ban đầu được đề xuất bởi justpassinby. Hệ thống của họ rất đẹp vì nó phát hiện số phiên bản và so sánh nó với bạn 'phiên bản yêu cầu'
Một điều xấu là cảnh báo hiển thị phiên bản flash đã phát hiện, không thân thiện với người dùng. Đột nhiên một hộp bật lên với một số con số dường như ngẫu nhiên.
Một số sửa đổi, bạn có thể muốn xem xét:
- loại bỏ các cảnh báo
- thay đổi nó để nó trả về một đối tượng (hoặc mảng) --- yếu tố đầu tiên là boolean true/false cho "là phiên bản cần thiết được tìm thấy trên máy của người dùng" --- Yếu tố thứ hai là số phiên bản thực tế được tìm thấy trên máy của người dùng
jqplugin: http://code.google.com/p/jqplugin/
$.browser.flash == true
@ Câu trả lời của Drewid không hoạt động trong Firefox 25 nếu plugin flash bị tắt nhưng được cài đặt.
@ đảo ngược nhận xét của Spear trong câu trả lời đó đã hoạt động trong firefox nhưng không có trong bất kỳ phiên bản IE nào.
Vì vậy, kết hợp cả mã của họ và nhận được mã này. Đã thử nghiệm trong Google Chrome 31, Firefox 25, IE 8-10. Cảm ơn Drewid và invertedSpear :)
var hasFlash = false;
try {
var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if (fo) {
hasFlash = true;
}
} catch (e) {
if (navigator.mimeTypes
&& navigator.mimeTypes['application/x-shockwave-flash'] != undefined
&& navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {
hasFlash = true;
}
}
'swfobject' không xác định. – mikemaccana
phiên bản rút gọn của rất Rất http://www.featureblend.com/javascript-flash-detection-library.html (chỉ boolean phát hiện đèn flash)
var isFlashInstalled = (function(){
var b=new function(){var n=this;n.c=!1;var a="ShockwaveFlash.ShockwaveFlash",r=[{name:a+".7",version:function(n){return e(n)}},{name:a+".6",version:function(n){var a="6,0,21";try{n.AllowScriptAccess="always",a=e(n)}catch(r){}return a}},{name:a,version:function(n){return e(n)}}],e=function(n){var a=-1;try{a=n.GetVariable("$version")}catch(r){}return a},i=function(n){var a=-1;try{a=new ActiveXObject(n)}catch(r){a={activeXError:!0}}return a};n.b=function(){if(navigator.plugins&&navigator.plugins.length>0){var a="application/x-shockwave-flash",e=navigator.mimeTypes;e&&e[a]&&e[a].enabledPlugin&&e[a].enabledPlugin.description&&(n.c=!0)}else if(-1==navigator.appVersion.indexOf("Mac")&&window.execScript)for(var t=-1,c=0;c<r.length&&-1==t;c++){var o=i(r[c].name);o.activeXError||(n.c=!0)}}()};
return b.c;
})();
if(isFlashInstalled){
// Do something with flash
}else{
// Don't use flash
}
- 1. Phát hiện nếu Flash được cài đặt trên Android và nhúng video Flash vào Hoạt động
- 2. Làm thế nào tôi có thể phát hiện nếu một điều khiển ActiveX được tải?
- 3. Phát hiện nếu Mod_Security được cài đặt với PHP?
- 4. làm cách nào tôi có thể đặt div thành "mức hiển thị: ẩn" nếu chúng nằm ngoài chế độ xem
- 5. Tôi có phải hiển thị .NET EULA không nếu tôi khởi động cài đặt
- 6. Làm thế nào để cài đặt oAuth nếu tôi không thể truy cập máy chủ?
- 7. JQuery Kiểm tra để xem nếu Div được hiển thị
- 8. Làm thế nào tôi có thể được thông báo nếu cột DataGrid được sắp xếp (và không sắp xếp)
- 9. Chỉ hiển thị div nếu mô hình có lỗi
- 10. Thông báo phát sáng flash không hiển thị
- 11. Làm cách nào để cài đặt cpanm và local :: lib nếu tôi không thể ghi vào ~ /?
- 12. Làm thế nào để phát hiện nếu nút xóa UItableviewcell bị ẩn?
- 13. Làm cách nào để phát hiện xem giao diện người dùng Jquery và Jquery có được cài đặt hay không và phiên bản nào được cài đặt?
- 14. Chỉ hiển thị thông báo nếu Hoạt động không hiển thị
- 15. Làm thế nào tôi có thể phát hiện khi ổ đĩa flash được cắm trong Linux?
- 16. Hiển thị thông báo nếu javascript không được bật trong trình duyệt
- 17. Cài đặt GHC Nếu không có gốc
- 18. nếu div có nội dung hiển thị div
- 19. Làm cách nào để hiển thị thông báo bật lên cho người dùng bằng jquery?
- 20. jQuery: Làm thế nào tôi có thể phát hiện nếu html đã thay đổi trong một phần tử đã cho?
- 21. Có thông báo trên iOS nếu UIAlertView được hiển thị không?
- 22. Làm thế nào để phát hiện nếu Java được kích hoạt trong IE?
- 23. Ẩn div nếu nội dung trống rỗng
- 24. Làm cách nào để phát hiện, qua javascript trong Safari Mobile, nếu ứng dụng iPhone của tôi được cài đặt?
- 25. Tôi có nhận được tin nhắn GCM hay không nếu Android giết ứng dụng của tôi và nếu tôi thực hiện Đóng Force từ cài đặt?
- 26. Tôi có thể nhận được vbscript để hiển thị thông báo lỗi thân thiện không?
- 27. Làm cách nào để buộc hiển thị và ẩn Bàn phím ảo nếu không có bàn phím phần cứng?
- 28. Làm cách nào để chúng tôi có thể nhận được thông báo nếu điện thoại có quyền truy cập internet?
- 29. phát hiện cài đặt trung tâm thông báo
- 30. Làm thế nào tôi có thể phát hiện được cài đặt Sun/Oracle JRE trên Windows?
-1 Không có vẻ để làm việc trong IE7. –