其实这已经不是个问题了,不过我看见许多个站上还是留着这么个虚框,碰巧今天有以前的同事问到我这个问题。发出来
出现框的原因是因为微软的安全更新,只有当客户手动激活其用户界面时,他们才能够与某些网页中加载的 Microsoft ActiveX 控件进行交互。受影响的程序包括FLASH,Adobe Reader QuickTime Player,Media Player, RealPlayer, Java虚拟机等等。
微软给出的解决方案就是外部调用JS代码的document.write方法,把<object>、<embed> 或 <applet> 编码的活动内容写入你的页面中,才可以自动激活,注意一定要是外部调用JS代码,在把JS代码和页面写在同一个文件中调用是不可以自动激活的。
解决方案
所以我们可以写一段JS function,然后在页面中把JS包含进来,用提供的参数动态输出这些受影响的内容。以FLASH为例:创建一个active.js的文件,输入以下代码
function addFlash(ur,w,h){
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/sho ... h/swflash.cab#version=6,0,29,0" width="'+w+'" height="'+h+'">');
document.write('<param name="movie" value="'+ur+'">');
document.write('<param name="quality" value="high">');
document.write('<paramname="wmode" value="transparent">');
document.write('<param name="menu" value="false">');
document.write('<embed src="'+ur+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" height="'+h+'"></embed>');
document.write('</object>');
}
然后在页面中包含该文件:script type="text/javascript" language="javascript" src="active.js"></script>
在需要插入FLASH的地方插入:<script language="javascript" type="text/javascript">addFlash(FLASH URL,'FLASH width','FLASH height');</script>
当然active,js中你可以写更多的function addWMV 等等,或者带更多的参数,比如wmode等等,举一反三