给WordPress添加拦截IE6功能

说真的,这篇文章本不应该叫这个题目的……

它应该叫《给Wordpress添加拦截IE6,7功能》。

或者叫《给Wordpress添加拦截IE功能》。

但是没有办法,我只能妥协一点,一步一步慢慢来。

因为一开始我的设计是这样的——弹出一个警示框,然后弹出一个选择框。然后由你选则“确定”还是“取消”,都会被我带到同一个页面,但是是页面的不同部分,所以你选择“确定”还是“取消”会有两种截然不同的效果产生。

但是最重要的是,一开始,我是决定屏蔽所有IE内核的浏览器的,从IE3.0~~IE8.0,包括加载IE上的那些乌龟壳,神马“马桶”,“世界之窗”,“麻花藤浏览器”…………都会被拦截。

好吧,贴出我最初代码吧。

var browser=navigator.appName;    //获取浏览器名称
if (browser==”Microsoft Internet Explorer”)    //如果是IE
{
alert(“亲爱的,请使用非IE内核浏览器打开偶滴网站^_^,\n推荐Firefox,Chrome 或者 Opera,谢谢啦^o^!\n”);    //弹出警示框
var choose=confirm(“那么,从现在开始就来做一个选择吧!”);    //弹出选择框
if (choose==true)
{document.location.href=”http://brilliant.run/lets-kill-ie#yourrightchoice”;}    //点下“确定”会到达页面的下载其他浏览器“描点”
else
{document.location.href=”http://brilliant.run/lets-kill-ie#whyyouchooseno”;}        //选择“取消”的会到达页面的Why“描点”。
}

小知识:

其中的http://brilliant.run/lets-kill-ie请换成你自己的预先准备的页面,就像我一样专门建立了一个Let’s Kill IE的页面一样,记得给里面写上一些比较有说服力的话。

对,看到代码就知道偶的“坚决态度了”,但是,经过偶这几天的资料统计,对被偶拦截到那里的淫,偶表示鸭梨很大。。

首先是 小松 大哥,说这样所有的IE用户都来不了了(PS:偶本来就这么打算的),这个有点不友好。。

接着是 云在天边  大哥,怎么说昵,一个IE控,不过淫确实很不错。

呃,不过他还是用的IE8,但是说偶不应该搞弹窗的,这样不友好,应该在页面还木有载入时就直接给重定向。

然后就是 老张博客  也是要偶去掉对话框,说他可不想点击对话框,这样用户体验会很不好。

偶承认,偶木有履行用户至上原则,但是偶既然这样做了,就肯定有损失了!

然后的群众反应,就是偶木有考虑到的问题了,我想这个是偶因该检讨的了。

比如 陈剑  说的:“我还是比较喜欢IE6,因为别的会卡,而且我打开多个窗口不会拖。”

呃,电脑配置问题偶木有考虑到,但是FF不会比IE6耗资源吧。。

接着就是 七叶草 说的:“真的很想按下确定,可是实验室破电脑不允许安装太多的软件啊,郁闷。”

呃,特殊原因…………

然后 yetone 说的:“建议你只判断一下IE6即可。”

呃,偶表示偶很纠结。

然后偶开始强烈纠结的思考,到底改怎么办,妥协么,放弃么…………

妥协么,放弃么…………

修改JS么……暂时缓一缓么?

呃,展示缓一缓吧。。

于是偶开始修改JS。

这次偶去掉了弹窗,直接重定向,然后只判断IE6和IE7,IE8就暂时“放过”吧。

修改后的jS如下:

var browser=navigator.appName;    //获取浏览器名称
var browserVer = navigator.userAgent.toLowerCase();    //获取浏览器详细版本信息
var b_version = browserVer.match(/msie ([\d.]+)/)[1];    //传说中的正确表达式,匹配MSIEX字段
if (browser==”Microsoft Internet Explorer”)    //如果是IE进入判断
{
if(b_version < 8)    //如果MSIEX版本小于8
{
document.location.href=”http://brilliant.run/lets-kill-ie”; //重定向到Let’s Kill IE页面
}
}

好了这样就完成了对IE8版本一下的浏览器的拦截。。

小知识:

为什么会出现 “ var b_version = browserVer.match(/msie ([\d.]+)/)[1] ” 这句?

因为IE不像Firefox,因为不管你如何判断版本号,得到的答案都是 “ Version:4.0 ” ,但是在详细的版本信息里面有“MSIE8”这样的信息,

所以我们可以通过匹配查询是否有 “MSIEX” 这样的信息来确定版本号。

好了下面介绍关于这段代码的使用方法。

把上面修改版的代码另存为 “checkie.js” 然后放在主题的 名为 “js” 的文件夹里面。

然后在主题里面插入如下代码,注意插的越考前越好,不然页面加载玩了,你的js还木有加载,这样就让用“哀翼”的狡猾的多过了。。

PS:大大的坏哦^_^

Oh,要加的代码如下。

<!– let’s kill IE –>

<?php if ( is_home()||is_single()||is_category()|| is_archive() || is_search()||is_page(about)||is_page(sitemaps)

||is_page(readerwall)||is_page(messageboard))    //如果是主页,文章页,分类页,存档页,搜索页,关于页…………
{ ?>
<script type=”text/javascript” src=”<?php bloginfo(‘template_url’); ?>/js/checkie.js”>        //调用这个check.js
</script>
<?php
} ?> <!– let’s kill IE –>

好了也就是说,除了Let‘s Kill IE 页面不会发生重定向外,其他的任何页面都会被扭到 “Let’s Kill IE” 这个页面。

其实这样设计的原因是,一开始我用的是弹窗,为了防止在“Let’s Kill IE” 这个页面再次“飙出”弹窗而加的判断语句。

呃,代码比较冗杂,但是本淫水平有限只能做到如此了。。

好了,也不是很难,所以是否添加这个代码,看你自己决定了。。

但是后来 朵未 大哥建议我说:“我觉得你应该一步步去拦截。现在主要是要K IE6,所以先放过IE7吧。IE8千万不能拦截,不然用户体验就不好了。”

“IE7啊,不要啊,不要啊 :cry: :cry: 现在不会拦截IE8了。。”

朵哥:“我现在上的这个网吧是IE7,已经很难得了。”

“呃,呃 :cry: 难道偶非得改JS了,呃,我再考虑考虑 :cry: :cry: 好艰难的选择啊 :cry:”

朵哥:“你看人家mg12也没再自己网页上拦截IE7啊。。IE6是该杀。等以后系统更新换代了,IE6必亡。IE7嘛,还不至于这么垃圾吧。先缓缓啊。 :mrgreen:”

“IE7也很不规范,但是比6好了些,IE8还过得去。囧,我还准备写文章介绍如何拦截IE6,7呢,折腾了半天的js和精心写下的Let’s kill IE页面被我改了又改啊。。”

冏,所以偶再补充一下。

你只要将代码的那一句“b_version < 8”改为“b_version < 7”就可以只拦截IE7以下的浏览器(主要是IE6),而不会拦截IE7于IE8了!

还有就是,偶已经说过,不会拦截IE8了。

但是有的用Internet Explorer 8.0 (Compatibility Mode)(PS:兼容模式),或者“世界之窗”,“马桶”,“麻花藤浏览器”的还是会被拦截。

因为IE8兼容模式实际上就是IE7模式,而“世界之窗”,“马桶”,“麻花藤浏览器”默认都是使用的IE7渲染模式,你自己将设置改为“使用IE8内置渲染模式就行了。

真是艰难的选择啊,偶到底应不应该将“b_version < 8”改为“b_version < 7”昵 :cry: :cry:  :cry: :cry:  :cry: :cry:  :cry: :cry:

About Mucid

My life is brilliant !
This entry was posted in Technology and tagged , , , . Bookmark the permalink.

136 Responses to 给WordPress添加拦截IE6功能

  1. blueandhack says: Unknown Unknown Unknown Unknown

    灰常好……~~现在用Chrome了~ :twisted:

  2. 小骆驼商队 says: Unknown Unknown Unknown Unknown

    支持,希望IE6快点死掉~

  3. 若蘭 says: Unknown Unknown Unknown Unknown

    为什么非要扼杀IE呢,并且一句“if (browser==”Microsoft Internet Explorer”) ”其实无用,uesr agent可以伪装,IE一直不还是用得好好的?

  4. 抓虾米 says: Unknown Unknown Unknown Unknown

    IE6在国内还是很重要滴

  5. 绝版黑色 says: Unknown Unknown Unknown Unknown

    大多主题应该都带有拦截IE6的函数吧, 我现在用的那个主题就自带的有.

  6. sfengz says: Unknown Unknown Unknown Unknown

    真想屏IE啊,我的博客在IE下完全混乱!!!我屏过两次了,因为屏IE导致用WLW和FTP出问题才把代码去了,你现在能正常用WLW和FTP吗?

    • Mucid says: Unknown Unknown Unknown Unknown

      @sfengz 呃,ftp出问题,你看看我这个js代码,好像没关联啊。。我这个只屏蔽IE6,wlw是调用的IE的核心,如果你机子上是安装的IE6的话。。呵呵偶用Notepad++写文章 :twisted:

  7. 疾风 says: Unknown Unknown Unknown Unknown

    一起抵制IE6

  8. lazyyyyyy says: Unknown Unknown Unknown Unknown

    这样的插件还挺好的,
    不过现在网吧很多还在用IE甚至是IE6,拒绝IE6等于拒绝很多人……
    不过IE是迟早要淘汰的,支持你

  9. freetstar says: Unknown Unknown Unknown Unknown

    好的

  10. freetstar says: Unknown Unknown Unknown Unknown

    汗。具体把代码插到哪里呢?我不太会

  11. ❤•终于° says: Unknown Unknown Unknown Unknown

    又是一个牛人。
    或许我们应该成立一个Anti-IE Association。