当innerHTML遇到flash壳

来源:互联网 发布:双语歌词制作软件 编辑:程序博客网 时间:2024/05/17 02:53
今天在整嵌入flash的页面,遇到两个问题,记录下来以备忘

1)将flash壳代码赋给innerHTML的问题
代码段1) 写了一段js代码,返回一个flash壳
function getShell(vname,vpath){
    
var str= "<object width='147' height='121'>";
      str
+="<param name='movie' value='http://xx.com/xplayer.swf?v="
      str
+=vname;
      str
+="&p=";
      str
+=vpath;
      str
+="&autoplay=0'></param>";
      str
+="<embed src='http://xx.com/xplayer.swf?v="
      str
+=vname;
      str
+="&p=";
      str
+=vpath;
      str
+="&autoplay=0' type='application/x-shockwave-flash' width='147' height='121'></embed>";
      str
+="</object>";
    
    
return str;
}
接着
代码段2)
 
。。。。
xx.innerHTML
=getShell(vname,vpath);
。。。。

这2段代码在firefox下是好的,ie就莫名其妙了,于是将代码段1改成如下,就两个浏览器都好了
function getShell(vname,vpath){
    
var str= "<embed src='http://txx.com/xplayer.swf?v="
      str
+=vname;
      str
+="&p=";
      str
+=vpath;
      str
+="&autoplay=0' type='application/x-shockwave-flash' width='147' height='121'></embed>";
    
    
return str;
}

即只留下embed部分

2) flash处理完毕调用本页面的js的问题

js中含有如下代码
。。。。
$(
"windowdiv").innerHTML = "waiting....."
。。。。

$("windowdiv")原本含有flash壳代码,这段代码在ie下好的,在firefox下就会让firefox爆掉
屏蔽掉就好了,或者使用setTimeOut延时调用也ok