今年 6 月份起 Chrome 为笔记本电脑节省电量与增强用户体验,内测不自动播放 flash 广告,凡是被判定为 flash 广告则需要用户手动去点击才能播放。该功能已于 9月1日的 chrome 45 中正式启用。
该功能虽然在一定程度上可以解决用电快及加快 flash 灭亡,但对于大多数游戏官网都喜欢使用小尺寸的 flash 下载按钮,如上图所示,将变得非常难看,所以还是有必要解决一下。
如果你是用户,不想禁用 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>
感谢,试了下可以。
今天也遇到这个问题了,还让领导改设置呢[/流汗] 终于明白原因了