欢迎各位blogger来到天涯博客,这里是天涯的个人博客
希望能够大家能够在天涯博客度过一段愉快的时光!天涯QQ:361707661
天涯博客最新域名:www.tyblog.com,欢迎大家去看看
“单击以激活控件”的解决方法
作者:天涯海角 日期:2006-08-12
在网页上,将鼠标挪到FALSH等类的控件上后,会出现“单击以激活并使用此控件”的提示,这是非常讨厌的。好像每次刷新都需要激活。是不是windows又出现什么问题了呢?
现在的Flash显示跟以前不同了,鼠标放上去会有一个虚线框,有提示文字说“单击以激活并使用此控件”,也就是说页面刚打开的时候,页面上的Flash是没有被激活的,需要用户确认,这时Flash可以正常播放动画但是如果里面有按钮什么的就不能点,用户确认激活后那些按钮才可以用。
其实这是你的系统在最近升级更新过了,并且安装了更新系统编号为KB912945的补丁。
这是微软为了避免与Eolas公司和加利福尼亚大学之间的专利侵权纠纷,而发布的一个IE非安全更新,这不是什么BUG 。
安装这个补丁以后,IE浏览器对ActiveX控件和Java程序的处理方式将有所改变,默认情况下不会主动激活,因此用户在访问Flash广告等网络内容时需要多点击一次鼠标,但非交互式控件不会改变,微软已经通知网站开发人员最好对他们的网页作出相应修改!
解决办法:在控制面板的"添加删除程序"中删除编号为"KB912945"的更新,如果列表中没有显示,需要在"添加删除程序"窗口右上角的“显示更新”前打√。

网站开发人员的应对办法:(本人已经测试成功)
通过调用外部js,将activex控件写入到页面中。
例如:
a.html要加载一个b.swf的flash,需要另外使用一个c.js文件,在里面通过document.write/innerHTML/outerHTML方式,将带有b.swf的object标签填入到页面指定位置。
c.js中的函数:
程序代码function insertFlash(elm, url, w, h) {
if (!document.getElementById(elm)) return;
var str = '';
str += '<object width="'+ w +'" height="'+ h +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">';
str += '<param name="movie" value="'+ url +'">';
str += '<param name="wmode" value="opaque">';
str += '<param name="quality" value="autohigh">';
str += '<embed width="'+ w +'" height="'+ h +'" src="'+ url +'" quality="autohigh" wmode="opaque" type="application/x-shockwave-flash" plugspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>';
str += '</object>';
document.getElementById(elm).innerHTML = str;
}
if (!document.getElementById(elm)) return;
var str = '';
str += '<object width="'+ w +'" height="'+ h +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0">';
str += '<param name="movie" value="'+ url +'">';
str += '<param name="wmode" value="opaque">';
str += '<param name="quality" value="autohigh">';
str += '<embed width="'+ w +'" height="'+ h +'" src="'+ url +'" quality="autohigh" wmode="opaque" type="application/x-shockwave-flash" plugspace="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed>';
str += '</object>';
document.getElementById(elm).innerHTML = str;
}
这是一个非常简单的函数,大家在使用的时候可以根据自己的需求,作相应修改。比如给object增加一些参数等等。
参数说明:
elm:需要插入flash的外层HTMLElement
url: flash的地址
w: flash宽
h: flash高
使用方法:
a.html:
程序代码<script type="text/javascript" src="c.js"></script>
<div id="test"></div>
<script type="text/javascript">
// <![CDATA[
insertFlash('test', 'b.swf', 120, 85);
// ]]>
</script>
<div id="test"></div>
<script type="text/javascript">
// <![CDATA[
insertFlash('test', 'b.swf', 120, 85);
// ]]>
</script>
评论: 8 | 查看次数: 16906
- 1
就只有js的代码吗?
现在真的好专业啊?呵呵
要插入透明flash非常简单,将“c.js”中的
str += '<param name="wmode" value="opaque">';
改为
str += '<param name="wmode" value="transparent">';
这样就可以了呀!
str += '<param name="wmode" value="opaque">';
改为
str += '<param name="wmode" value="transparent">';
这样就可以了呀!
我的为什么没有那个KB912945呀?
希望高手们看到信息后能帮忙解决一下,小弟感激不尽!!
透明FLASH背景暂时还没有找到解决办法 

如果是插入的透明FLASH的话要怎么做啊??
- 1
发表评论
你没有权限发表留言!
上一篇
下一篇


文章来自:
Tags:
姓名:




