转: 通过Nginx使全站页面变灰:HTml 和Flash

jackxiang 2010-4-21 11:34 | |
4月21日全国哀悼日,将去除网站全站所有站点色彩(变灰),悼念遇难同胞,愿死者安息。

  金山逍遥网旗下站点众多,虽然官网都有统一的页头、页尾,但是,还有一部分站点(例如用户中心、注册充值页面、游戏客户端内嵌网站、活动专题页等)页头、页尾不相同。但是,所有站点采用的都是Nginx服务器,95%以上的站点都经过Nginx负载均衡服务器,因此只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行:


<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style>


就可以实现在IE及IE内核浏览器下,所有网站变灰色。步骤如下:

  1、重新编译Nginx,增加http_sub_module模块:

wget http://nginx.org/download/nginx-0.8.35.tar.gz
tar zxvf nginx-0.8.35.tar.gz
cd nginx-0.8.35
./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module
make && make install
pkill -9 nginx
/usr/local/webserver/nginx/sbin/nginx


2、在nginx.conf配置文件的http {...}大括号内增加以下两行:

sub_filter  '</head>'  '<style type="text/css">html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }</style></head>';
sub_filter_once on;


 保存后,重新加载配置文件:


/usr/local/webserver/nginx/sbin/nginx -t
/usr/local/webserver/nginx/sbin/nginx -s reload


3、如果某些带有Flash的页面仍显示彩色,或浏览器上下滚动条拖动时Flash FLV播放器变花(例如剑网3、剑侠世界官网分流页),将Flash改为JS输出(本例为SWFObject):


<script type="text/javascript" src="http://v.xoyo.com/site/v.xoyo.com/web/js/swf.js"></script>
<div id="video_content"></div>
<script type="text/javascript">
<!--
    var video_player_so = new SWFObject("http://api.v.xoyo.com/external/player.swf?autostart=true&config=http://api.v.xoyo.com/external/video-542.swf", "sotester", "439", "246", "7");
    video_player_so.addParam("wmode", "opaque");
    video_player_so.addParam("allowfullscreen","true");
    video_player_so.addParam("allowscriptaccess","always");
    video_player_so.write("video_content");
//-->
</script>


这样,整个页面,包括Flash播放器中的视频就都变灰色了。
来源于回忆未来的博客:http://blog.s135.com/post/441/#entrymore

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/2968/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]