檢測瀏覽器是否安裝了flash及其版本


檢測瀏覽器是否安裝了flash及其版本

下面是幾個需要注意的點。

1、獲取所有元素

  • IE:

       
       
       
               
    1. document.all
  • FireFox:

       
       
       
               
    1. document.getElementsByTagName(*)

2、檢測插件是否安裝(flash)

  • IE:
       
       
       
               
    1. var swf=new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
  • Firefox:
       
       
       
               
    1. //navigator的首字母必須是小寫,大寫是不正確的
    2. var swf=navigator.plugins["Shockwave Flash"]

完整代碼如下:

 
 
 
         
  1. /**
  2. * 檢測瀏覽器是否安裝了flash; 返回json,f:是否安裝;v:若安裝,則返回版本號
  3. * @returns {{f: number, v: number}}
  4. */
  5. function checkFlash() {
  6. var hasFlash = 0;
  7. var flashVersion = 0;
  8. var swf = null;
  9. //document.all為IE下,document.getElementsByTagName("*")為非IE
  10. if (document.all || document.getElementsByTagName("*")) {
  11. try {
  12. swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
  13. if (swf) {
  14. hasFlash = 1;
  15. VSwf = swf.GetVariable("$version");
  16. flashVersion = parseInt(VSwf.split(" ")[0].split(",")[0]);
  17. }
  18. }
  19. catch (e) {
  20. //catch不能做處理,而且必須要捕捉;
  21. //否則在firefox,下,ActiveXObject會出錯,下面的代碼不會再去執行
  22. }
  23. if (!swf){
  24. //navigator首字母必須是小寫,大寫是錯誤的
  25. if (navigator.plugins && navigator.plugins.length > 0) {
  26. var swf = navigator.plugins["Shockwave Flash"];
  27. if (swf) {
  28. hasFlash = 1;
  29. var words = swf.description.split(" ");
  30. for (var i = 0; i < words.length; i++) {
  31. if (isNaN(parseInt(words[i]))) {
  32. continue;
  33. }
  34. flashVersion = parseInt(words[i]);
  35. }
  36. }
  37. }
  38. }
  39. }
  40. return {f: hasFlash, v: flashVersion}
  41. }





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM