zoukankan      html  css  js  c++  java
  • 【记录】用js调用flash的方法,IE68出现的问题

    前几天项目有个功能,必须使用js去调用flash的方法,来改变flash的内部状态。

    其他浏览器都挺好,唯独IE6-8会出现问题。使用下面代码(用js调用flash的func方法并传递一个数字)!

    function callFlash (index){
    // 这里使用了jquery浏览器检查
    var flash = $.browser.msie&&$.browser.version!=="9.0" ? window["magic"] : document["magic"];
    //flash.func func是flash 里面的一个方法,有些时候 flash可能已经准备好,但是不一定可以调用方法
    if(flash && flash.func){
    flash.func(index);
    }
    else{
    setTimeout(callFlash,
    5000);
    }
    }

    在IE6-8下面会出现问题。第二次进入页面,flash 已经被缓存,监测flash.func始终是false。这样就不能调用flash.func方法。

    最后的解决方法,使用swfObejct.js 动态把flash 载入页面,然后针对IE6-8加上flash.swf?Math.random();(随机数),禁止缓存。

    当然这可能不是最好的办法。

    	function (){
    		var a = $.browser.msie&&$.browser.version!=="9.0" ? ('?'+Math.random()) : "";
    		var b=new SWFObject("/swfs/magic.swf"+a,"magic","310","316","7","#336699");//swfobject是一个插件
    		b.addParam("allowScriptAccess","always");
    		b.addParam("wmode","transparent");
    		b.write("MagicCardGameFlash")
    	}
    

    看起来这很简单,其实也为难很长一段时间。

    来自3楼的推荐:http://q.pnq.cc/archives/443(一个更好的方案)


  • 相关阅读:
    表优化
    存储和压缩
    自定义函数
    Hadoop中SecondaryNameNode和HA(高可用)区别
    ASUS笔记本,更换了固态硬盘,重装系统前后开机都自动进入BIOS界面
    顶部下拉菜单制作笔记
    综合笔记
    工具sublime安装
    head引入样式
    滚动固定导航代码
  • 原文地址:https://www.cnblogs.com/idche/p/2040219.html
Copyright © 2011-2022 走看看