`
qqqckm
  • 浏览: 11930 次
  • 来自: ...
社区版块
存档分类
最新评论

Flash控件的自动激活

    博客分类:
  • WEB
阅读更多

1. 在中间加入objectSwap.js
<script src='objectSwap.js' type='text/javascript'>
2. falsh控件部分 to the object tag
具体参考见:http://blog.deconcept.com/swfobject/

object代码如下:

js 代码
  1. /* ObjectSwap - Bypasses the new ActiveX Activation requirement in Internet Explorer by swapping existing ActiveX objects on the page with the same objects. Can also be used for Flash version detection by adding the param:  
  2. <param name="flashVersion" value="8" /> to the object tag.  
  3.  
  4. Author: Karina Steffens, www.neo-archaic.net  
  5. Created: April 2006  
  6. Changes and bug fixes: May 2006  
  7. Bug fixes: June 2006  
  8. Changes: October 2006 (Included Opera9 and excluded IE5.5)  
  9. */  
  10.   
  11. //Check if the browser is InternetExplorer, and if it supports the getElementById DOM method   
  12. var ie = (document.defaultCharset && document.getElementById && !window.home);   
  13. var opera9 = false;   
  14. if (ie){   
  15.     //Check for ie 5.5 and exclude it from the script   
  16.     var ver=navigator.appVersion.split("MSIE")   
  17.     ver=parseFloat(ver[1])   
  18.     ie = (ver >=6)   
  19. }else if (navigator.userAgent.indexOf("Opera")!=-1) {   
  20.     //Check for Opera9 and include it in the ObjectSwap   
  21.     var versionindex=navigator.userAgent.indexOf("Opera")+6   
  22.     if (parseInt(navigator.userAgent.charAt(versionindex))>=9)   
  23.     opera9 = true;   
  24. }   
  25. //Perform ObjectSwap if the browser is IE or Opera (if not just check flashVersion)   
  26. var oswap = (ie || opera9)   
  27.   
  28. //Hide the object to prevent it from loading twice   
  29. if (oswap){   
  30.     document.write ("<style id='hideObject'> object{display:none;} </style>");   
  31. }   
  32.   
  33. /*Replace all flash objects on the page with the same flash object,   
  34. by rewriting the outerHTML values  
  35. This bypasses the new IE ActiveX object activation issue*/  
  36. objectSwap = function(){   
  37.     if (!document.getElementsByTagName){   
  38.         return;   
  39.     }   
  40.     //An array of ids for flash detection   
  41.     var stripQueue = [];   
  42.     //Get a list of all ActiveX objects   
  43.     var objects = document.getElementsByTagName('object');   
  44.     for (var i=0; i<objects.length; i++){              
  45.         var o = objects[i];    
  46.         var h = o.outerHTML;   
  47.         //The outer html omits the param tags, so we must retrieve and insert these separately   
  48.         var params = "";   
  49.         var hasFlash = true;   
  50.         for (var j = 0; j<o.childNodes.length; j++) {   
  51.             var p = o.childNodes[j];   
  52.             if (p.tagName == "PARAM"){   
  53.                 //Check for version first - applies to all browsers   
  54.                 //For this to work, a new param needs to be included in the object with the name "flashVersion" eg:   
  55.                 //<param name="flashVersion" value="7" />   
  56.                 if (p.name == "flashVersion"){   
  57.                     hasFlash = detectFlash(p.value);   
  58.                     if (!hasFlash){   
  59.                         //Add the objects id to the list (create a new id if there's isn't one already)   
  60.                         o.id = (o.id == "") ? ("stripFlash"+i) : o.id;   
  61.                         stripQueue.push(o.id);   
  62.                         break;   
  63.                     }   
  64.                 }    
  65.                 params += p.outerHTML;                
  66.             }   
  67.         }      
  68.         if (!hasFlash){   
  69.             continue;   
  70.         }          
  71.         //Only target internet explorer   
  72.         if (!oswap){   
  73.             continue;   
  74.         }    
  75.         //Avoid specified objects, marked with a "noswap" classname   
  76.         if (o.className.toLowerCase().indexOf ("noswap") != -1){   
  77.             continue;   
  78.         }          
  79.         //Get the tag and attributes part of the outer html of the object   
  80.         var tag = h.split(">")[0] + ">";               
  81.         //Add up the various bits that comprise the object:   
  82.         //The tag with the attributes, the params and it's inner html   
  83.         var newObject = tag + params + o.innerHTML + " </OBJECT>";     
  84.         //And rewrite the outer html of the tag    
  85.         o.outerHTML = newObject;   
  86.     }   
  87.     //Strip flash objects   
  88.     if (stripQueue.length) {   
  89.         stripFlash(stripQueue)   
  90.     }   
  91.     //Make the objects visible again   
  92.     if (oswap){   
  93.         document.getElementById("hideObject").disabled = true;   
  94.     }   
  95. }   
  96.   
  97. detectFlash = function(version){   
  98.     if(navigator.plugins && navigator.plugins.length){   
  99.         //Non-IE flash detection.   
  100.         var plugin = navigator.plugins["Shockwave Flash"];   
  101.         if (plugin == undefined){   
  102.             return false;   
  103.         }   
  104.         var ver = navigator.plugins["Shockwave Flash"].description.split(" ")[2];   
  105.         return (Number(ver) >= Number(version))   
  106.     } else if (ie && typeof (ActiveXObject) == "function"){   
  107.     //IE flash detection.   
  108.         try{   
  109.             var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + version);   
  110.             return true;   
  111.         }   
  112.         catch(e){   
  113.             return false;   
  114.         }   
  115.     }   
  116.     //Catchall - skip detection   
  117.     return true;   
  118. }   
  119.   
  120. //Loop through an array of ids to strip   
  121. //Replace the object by a div tag containing the same innerHTML.   
  122. //To display an alternative image, message for the user or a link to the flash installation page, place it inside the object tag.     
  123. //For the usual object/embed pairs it needs to be enclosed in comments to hide from gecko based browsers.   
  124. stripFlash = function (stripQueue){   
  125.     if (!document.createElement){   
  126.         return;   
  127.     }   
  128.     for (var i=0; i<stripQueue.length; i++){   
  129.         var o = document.getElementById(stripQueue[i]);   
  130.         var newHTML = o.innerHTML;     
  131.         //Strip the comments   
  132.         newHTML = newHTML.replace(/<!--\s/g, "");   
  133.         newHTML = newHTML.replace(/\s-->/g, "");   
  134.         //Neutralise the embed tag   
  135.         newHTML = newHTML.replace(/<embed/gi, "<span");        
  136.         //Create a new div element with properties from the object   
  137.         var d = document.createElement("div");   
  138.         d.innerHTML = newHTML;   
  139.         d.className = o.className;   
  140.         d.id = o.id;   
  141.         //And swap the object with the new div   
  142.         o.parentNode.replaceChild(d, o);   
  143.     }   
  144. }   
  145.   
  146. //Initiate the function without conflicting with the window.onload event of any preceding scripts   
  147. var tempFunc = window.onload;   
  148. window.onload = function(){   
  149.     if (typeof (tempFunc) == "function"){   
  150.         try{   
  151.             tempFunc();   
  152.         } catch(e){}   
  153.     }   
  154.     objectSwap();   
  155. }   
  156.   
分享到:
评论

相关推荐

    Flash控件详解

    **SAlign** 属性与AlignMode联动,当AlignMode的某些位被激活时,SAlign会自动设置为相应的字符组合,如“L”(左)、“T”(顶)、“R”(右)、“B”(底),按照字母顺序排列,形成如“LT”、“RB”等组合,...

    再谈IE中Flash控件的自动激活 ObjectWrap

    这篇文章主要探讨了在Internet Explorer (IE) 浏览器中如何解决Flash控件的自动激活问题,特别是通过使用"ObjectWrap"技术。Flash控件在IE中的激活限制常常导致用户体验下降,因为用户需要手动点击才能使Flash内容...

    flash在网页中激活

    #### 二、Flash在网页中自动激活的实现原理 在Web开发中,`&lt;object&gt;` 和 `&lt;embed&gt;` 标签是嵌入Flash内容的主要方式。通过合理配置这些标签及其参数,可以实现在用户浏览器中自动加载并激活Flash内容的目标。 #### ...

    去掉IE中的Flash出现激活框的解决方法

    IE浏览器通过ActiveX控件来支持Flash内容的显示。当用户访问一个包含Flash对象的网页时,IE会检查系统是否已安装了Flash插件及其版本是否符合网页的要求。如果未检测到适当的Flash版本,IE会弹出一个提示框,要求...

    下载→《解决Flash“单击以激活并使用此控件”的办法》文件

    尽管如此,对于那些仍然需要使用Flash内容的用户,可能会遇到“单击以激活并使用此控件”的提示。这个问题通常是由于浏览器的安全设置或者Flash插件的配置导致的。以下是一些详细的解决方法: 1. **更新Flash ...

    flash自动生成工具

    9. `IE ActiveX Fix`:ActiveX是Internet Explorer浏览器的一种插件技术,这个修复程序可能是用来解决在IE中运行Flash内容时遇到的问题,或者确保该工具的ActiveX控件能正常工作。 综上所述,这个“flash自动生成...

    自定义控件嵌入Flash

    为了实现无提示的激活,我们可以利用JavaScript在页面加载完成后自动调用Flash控件的激活方法。在JavaScript中,我们可以使用`swfobject`库,这是一个广泛使用的开源库,专门用于处理Flash的嵌入和交互。通过`...

    如何在PowerPoint2021中插入Flash动画.docx

    #### 二、插入Flash控件 启用“开发工具”选项卡后,我们就可以开始插入Flash动画了。具体步骤如下: 1. **选择“开发工具”**:点击功能区中的“开发工具”选项卡。 2. **插入控件**:在“控件”组中,单击“其他...

    flash插入的方法.ppt

    如果控件列表中没有“Shockwave Flash Object”,需要在系统目录下注册Flash控件,通常是在C:\Windows\System32\Macromed\Flash目录下找到Flash9b.ocx文件进行注册。 **方法二:对象插入法** 这种方法将Flash动画...

    四种在PPT课件中插入Flash动画的方法

    3. 拖动鼠标在幻灯片上绘制Flash控件的区域。 4. 单击“控件工具箱”上的“属性”按钮,打开属性对话框。 5. 在“自定义”选项中,点击“浏览”,指定`.SWF`文件的路径和名称。还可以调整“play”,“quality”,...

    在PPT中插入FLASH动画的几种方法.doc

    值得注意的是,为了确保在没有安装Flash播放器的计算机上也能播放这些动画,可以在插入Flash控件时,将“EmbedMovie”属性设置为“true”,这样Flash动画会被嵌入到PPT文件中,无需依赖外部播放器。 总的来说,每种...

    PowerPoint演示文档中插入Flash的3种方法.docx

    2. 在“控件工具箱”中,找到“其他控件”按钮,从下拉列表中选择“Shockwave Flash Object”。 3. 将鼠标变为十字形状后,在编辑区拖动鼠标画出一个方形区域。 4. 右键点击该区域,选择“属性”。 5. 在“属性”...

    PPT幻灯片中怎么插入Flash动画.docx

    在插入的Flash动画图标上,单击鼠标右键打开快捷菜单,选择“动作设置”,出现动作设置对话框,选择“单击鼠标”或“鼠标移过”都可以,在对象动作项选择“对象激活”,单击确定。 方法二:将Flash生成的.exe动画...

    大名鼎鼎SWFUpload- Flash+JS 上传

     该事件在整个文件的上传过程中定期性的被Flash控件自动触发,用以帮助开发者实时更新页面UI来制作上传进度条。  注意:该事件在Linux版本的Flash Player中存在问题,目前还无法解决。  - 传入参数  file object...

    AutoPlay_Menu_Builder6.0.1328注册版

    由于某些特殊原因,滚动文本、文本框、Flash 影片、网页浏览器、媒体播放器这几个控件不能位于其它控件的后面。  您还可以使用快捷键来微调(以一个象素为单位)控件的位置和大小。方向键用来调整控件位置,而 ...

    AutoPlay_Menu_Builder5.5.0.1328注册版

    由于某些特殊原因,滚动文本、文本框、Flash 影片、网页浏览器、媒体播放器这几个控件不能位于其它控件的后面。  您还可以使用快捷键来微调(以一个象素为单位)控件的位置和大小。方向键用来调整控件位置,而 ...

    插入动画视频音频等.doc

    - 插入&gt;对象,选择要插入的Flash文件,然后设置动作设置,选择"激活内容"。 - 这种方法需要计算机上安装Adobe Flash Player才能播放。 3. 利用超链接插入法: - 插入一个图形或文字,右键点击并编辑超链接,输入...

    经常使用的PPT常用技巧

    - 使用控件插入法,首先需要调出控件工具箱,选择"其他控件",然后选择Shockwave Flash Object控件。在属性设置中填写SWF文件路径,可以选择嵌入影片以避免路径问题。 - 对象插入法则是通过“插入——对象”,选择...

Global site tag (gtag.js) - Google Analytics