一个关于前端、产品、设计、绘画的情侣博客

解决 Chrome 45 flash 不能自动播放

今年 6 月份起 Chrome 为笔记本电脑节省电量与增强用户体验,内测不自动播放 flash 广告,凡是被判定为 flash 广告则需要用户手动去点击才能播放。该功能已于 9月1日的 chrome 45 中正式启用。

flash 不能自动播放

该功能虽然在一定程度上可以解决用电快及加快 flash 灭亡,但对于大多数游戏官网都喜欢使用小尺寸的 flash 下载按钮,如上图所示,将变得非常难看,所以还是有必要解决一下。

如果你是用户,不想禁用 flash 的自动播放,只要在【设置】-【显示高级设置】-【内容设置】-【插件】-【运行所有插件内容】即可。

chrome 下 flash 不能自动播放

如果你是站长或拥有网站的权限,那么需要使用以下的方法解决。

其实 flash 视频、flash 广告或者 flash 动画,是很难判断的,所以可以猜 chrome 并非按照“广告”来禁用,而是尺寸大小,这种随便查看几个网站就知道了,还有上例 DNF官网的下载按钮,这种明显就不是广告。经过一番手动测试,发现了这个被判断为 flash 广告的临界大小为宽398px,高298px。

width:398px
height:298px

于是解决思路也很简单,就是在页面初始插入 flash 时将宽高设置为不小于上述的值,并且设置个延迟函数来替换为正常大小的 flash,测试很顺利,发现初始时设置为上述值后,那么该 flash 就在后续使用中都不会被禁用播放,如果从 DOM 节点中删除则依然会被判定为广告 flash。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flash 自动播放</title>
</head>
<body>
<div id="flashCon"></div>
<script src="http://libs.useso.com/js/swfobject/2.2/swfobject.min.js"></script>
<script>
//swf 文件宽不能小于398,高不能小于298
swfobject.embedSWF("http://ossweb-img.qq.com/images/dnf/web2015/down.swf", "flashCon", "398", "298", "8.0.0");

setTimeout(function(){
    swfobject.embedSWF("http://ossweb-img.qq.com/images/dnf/web2015/down.swf", "flashCon", "215", "159", "8.0.0");
},10);
</script>
</body>
</html>

预览地址

关于作者

Milly

擅长 Adobe 旗下软件,Ai、Fw、Fl、Br、Ae、Pr、Id 等的安装与卸载,精通 CSS、JavaScript、PHP 等单词的拼写。「从个性签名被模仿回忆我的十年互联网生涯」https://www.sawlove.com/ten-years-internet-life.html

2 评论

由 Milly
一个关于前端、产品、设计、绘画的情侣博客

分类

文章归档