当前位置:七道奇文章资讯设计学堂Flash设计
日期:2009-04-03 23:39:00  来源:本站整理

<b>网页中Flash激活限制的处理办法</b>[Flash设计]

赞助商链接



  本文“<b>网页中Flash激活限制的处理办法</b>[Flash设计]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文比较了国内门户网站对网页中Flash激活限制的处理办法和本领.


本年年初之时,微软公布了一个针对ActiveX控件的补钉,安装此补钉后的IE6中,当ActiveX控件得到核心时,IE自动为其套上一个虚线矩形边框,并提醒用户按下回车大概空格键以激活控件.方才正式公布中文版的IE7也是一样的处理.

最受影响的想必就是Flash控件了.当时我认为这对广告满屏飞的门户网站来说一定是个坏消息.不过微软也没有把事做绝,留了一条脚本方法办理的后路.

本日忽然产生爱好,想看看这些门户们若何应对此限制的.一番对比下来,给大家报告一下:

新浪

首先在HTML的中加载一个脚本:
代码: < script type="text/javascript" src="http://image2.sina.com.cn/home/sinaflash.js">< /script >

通过以下脚本在HTML中写入Flash广告:
代码: < script type="text/javascript">
var objFlash = new sinaFlash("http://ad4.sina.com.cn/200611/17/73696_gundong.swf", "", "279", "56", "7", "", false,"high");
objFlash.addParam("wmode", "opaque");
objFlash.write("flashcontent_02AE4A");
< /script >

下载sinaflash.js来看,其实恰是 Adobe 倡议利用的SWFObject.参阅Adobe的文章 JavaScript Flash Player Detection and Embedding with SWFObject.Adobe还供应了一套别的的办理筹划,并集成到Dreamweaver 中,不过仿佛用的人不多.

新浪将其洗面革心,大概加入了一些自己的处理,我没有爱好去弄清楚:).但我想固然人家是MIT License,但版权信息还是不要去掉为好.

搜狐的手段和新浪如出一辙,首先加载:
代码: < script src="http://www.sohu.com/sohuflash_1.js" type=text/javascript>< /script >
调用:
代码: var sohuFlash2 = new sohuFlash("http://images.sohu.com/cs/button/lexus/4501051127.swf", "_bflexO", "450", "105", "7");
sohuFlash2.addParam("quality", "high");
sohuFlash2.addParam("wmode", "Opaque");
sohuFlash2.addVariable("clickthru","http://adc.go.sohu.com/200611/10083225efd048d2153be48383171872.php");
sohuFlash2.write("_turnAD9");

sohuflash_1.js 一样改写自SWFObject,并且改得更面目全非.没必要吧,同学.

你说是搜狐抄的新浪,还是新浪抄的搜狐?

网易就是不一样,处理手段显得很有技术性.首先加载脚本:
代码: < script src="/DartRichMedia_1_03.js">< /script >
页面上直接用 docuemnt.write 写入 Flash 的HTML代码.

按照微软的阐明,直接在页面上利用docuemnt.write写入是不能饶开激活限制的,Hack就是那个加载的js中.代码以下:
代码: if(typeof(dclk_isDartRichMediaLoaded) == "undefined") {
dclk_isDartRichMediaLoaded = true; mb5u.Com-模板无忧
function dclkWrite(str){
if(dclk_shouldOverride) {
dclk_original_documentWrite(str);
}
else{
document.write(str);
}
}
function dclkWriteln(str){
if(dclk_shouldOverride) {
dclk_original_documentWriteLn(str);
}
else{
document.writeln(str);
}
}
function dclk_isInternetExplorer() {
return (navigator.appVersion.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Opera") < 0);
}
dclk_shouldOverride = dclk_isInternetExplorer();
if(dclk_shouldOverride) {
dclk_original_documentWrite = document.write;
dclk_original_documentWriteLn = document.writeln;
document.write = dclkWrite;
document.writeln = dclkWriteln;
}
}

用这么迂回的方法覆盖JS默许的document.write便可以饶开激活限制?是不是有点诡异?但愿网易的工程师能给大家解读一下.

雅虎中国

Yahoo!中国对Flash的处理中规中距,就是微软文章中阐明的,利用一个外连的js文件,在js顶用docuemnt.write 写入.

腾讯

默许Flash并没有激活! 后来者固然气势逼人,但毕竟还需求时间打磨:).

稍做总结吧,新浪/搜狐利用的SWFObject实际原理是在外连的JS顶用innerHTML间接导入Flash代码.这和Yahoo!中国的处理方法归根揭底都基于微软的阐明.

利用 SWFObject 还能办理XHTML校验的问题,不过我想门户们都还不会太在乎这个:).

网易的方法对比邪门,很有骇客色彩.不过还有比它更邪门的方法:

//只要在 背面加上一行
代码: < script src="javascript:'document.body.innerHTML =''';">< /script >


  以上是“<b>网页中Flash激活限制的处理办法</b>[Flash设计]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .