再谈IE中Flash控件的自动激活 ObjectWrap

2016-02-19 10:29 7 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的再谈IE中Flash控件的自动激活 ObjectWrap,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

我在Ajax中国上曾经对比过国内门户网站对Flash激活限制的处理。除了qq.com,各大门户网站上的flash都已经解决了激活限制的问题。淘宝的页面上也常常会使用到Flash,激活限制导致用户的交互性体验感受不够友善。

我们一直想解决此问题。但是国内门户网站的做法都略为麻烦,要么需要为每个flash编写额外的js,要么就是在页面上放置flash的位置打上一块script补丁,利用SWFObject或者UFO提供的脚本写入flash。

网易的做法算是最技术的了,它的原理可以简单说一下(感谢在网易工作的朋友的阐析):通过外部引入的js代码覆盖主页面的document.write方法,这样在主页面上利用document.write方法时其实是外部文件的函数来写入的,实现了active控件下载和主页面分离。这样也就避开了激活限制。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

可是,以上的所有解决方法,Flash都是通过脚本来写入的。比较注重web标准的网站会附上一段noscript 来弥补禁用JavaScript的用户。但大多数是置之不理。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

一番google(我真的是用了yahoo,不过没找到什么),在SitePoint上发现了一份很有价值的文献ObjectSwap: Bypassing the ActiveX Activation Issue in IE,如获至宝。

ObjectSwap提供的实现只需要在head中引入一个脚本。虽然也是使用脚本,但其逻辑是在页面加载完成后,重写一次object标签来实现自动激活。页面中的flash依然是标准的HTML。不需要通过document.write写入。而且对于禁用js的用户Flash依然可以正常显示。这应该算是最unobtrusive的一种实现了。

最新的ObjectWrap 可以从这里下载。

原来的脚本有6k,我简化了一些逻辑,并通过条件注释让脚本只为IE6/7服务。让人欣喜的是,不光是Flash,只要是object,ObjectWrap都会处理,这样我们在安全登录淘宝或者支付宝输入密码的时候,也可以节约一个单击的气力了。

至于为什么重写object可以解决激活限制,就不要深究了,正如IE那一系列让人抓狂的CSS hack。我们只能逼自己记住它,傻瓜才会去弄清楚为什么。

最后向ObjectWrap的作者 Karina Steffens 致敬!

来源:http://www.tulaoshi.com/n/20160219/1594833.html

延伸阅读
标签: 浏览器
在IE浏览器中实现网页自动翻译 添加IE加速器 不知道您使用过IE中右键的翻译加速器吗?通过添加相应的加速器,我们可以轻松现实很多实用的功能。 1、在IE浏览器中打开Bing 在线翻译加载项:http://www.iegallery.com/cn/addons/detail.aspx?id=5417 2、单击添加至 Internet Explorer按钮。 3、勾选将其设为此类加速...
爸爸在二胎备孕中要注意什么 现在生活条件好,子女孤独,喜欢孩子,国家政策开放等等种种原因,使很多家庭决定再生二胎,虽然经历过前一胎的许多妈妈,面临许多问题需要解决,但是不是所有的备孕准备都是妈妈自己的事呢?当然不是,我们的爸爸们在备孕过程的影响也是相当的大的,一起来看看吧。 1、肥胖 在胖人身体里有许多像六六六、滴...
标签: 浏览器
如何在IE浏览器中调用未签名ActiveX控件的设置方法?   ActiveX控件做为IE浏览器专门一种插件程序,在我们使用IE过程中是会经常遇到的。比如当我们使用网银或支付宝等安全要求比较高的网站,都会提示我们需要安装ActiveX控件。 只有安装ActiveX控件以后我们才能正常登陆这些网站,以及使用这些网站的服务。一般我们安装的ActiveX...
标签: 浏览器
Flash在Modern IE10中无法打开的解决方案 在Windows 8系统中,微软将IE分成了桌面和modern两个版本。而modern版本对flash只支持白名单中的网站,对于那些不存在白名单中的网站就不能显示其flash。当你使用modern IE 10打开不在白名单含有flash内容的网站时,就会看到对应的提示,这样你不得不转到桌面版的IE 10去查看flash内容。该限制...
标签: 浏览器
在IE浏览器中如何实现网页自动翻译   虽然IE浏览器没有内置翻译的功能,不过我们也可以通过简单的设置,在IE浏览器中添加Bing翻译,一键实现网页快速翻译的功能。而且很多用户认为微软的Bing翻译比Google翻译和其它的在线翻译都更加准确、贴近原意。 下面是3个实现快速翻译的方法,您可以根据您的使用习惯进行选择。 不知道...

经验教程

354

收藏

28
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部