IE中的条件注释(未解决)

今日工作的时候,我需要解决一个问题,是实现让一个网页在IE8及以下或者是使用了这些内核加载该网页的浏览器弹出提醒用户更换更新浏览器的提示。

以下是解决过程的一些描述:

首先想到的是用JS实现,所以以此为条件百度了几段代码,但是发现在我用IEtester测试的时候低版本(4、5、6)没有弹窗,当时有些急躁所以未想到这些版本的浏览器对js的兼容程度是什么情况(还记得jQ文件在低版本IE都有报错弹窗提醒)。

后来文哥给我提供了一种方法是使用IE特有支持的条件注释:<!--[if IE]><![endif]-->当时我没有多想这种结构的组成原理或是生效原理之类的,就在那里埋头试,发现一个问题就是当我使用猎豹、360等浏览器的极速模式进入页面然后在切换到IE兼容模式之后,无论我是关闭现有页面,从新页面重新输入地址进入;还是清除缓存之后再次输入地址;或是手动在原有页面切换为极速模式;---都无法再次以极速模式(即非IE内核)打开原有页面,不断地刷新和找寻方法都是默认以IE模式打开页面

<!--[if lte IE 8]><script>window.location.href='http://cdn.dmeng.net/upgrade-your-browser.html?referrer='+location.href;</script><![endif]-->
此问题至今未解决,后来的解决方法是直接进行弹窗,而不进行地址转换(和它所带来不知为何的默认内核打开方式的变化)


今天的发现:

条件注释:

条件注释只能用于Explorer 5+ Windows(以下简称IE).
如果你安装了多个IE,条件注释(Conditional comments)将会以最高版本的IE为标准(一般为IE 6)。
我听说(但没测试过),当在条件注释中使用了小数点,且只安装了IE5.0的时候,将会产生一个不正确的判断。

以上为摘录,遗憾的是似乎条件注释之所以是IE特有,是因为它的条件只是IE版本(。。。)如<!--[if IE7]>为查询浏览器版本为IE7;

除此之外有两个特殊的语法:

gt :大于 <!--[if gt IE7]><![endif]-->  浏览器为IE7或以上时生效

lte:小于或等于 <!--[if lte IE7]><![endif]--> 浏览器为IE7或以下时生效


注意支持条件注释是IE5或以上(并且IE5支持很初步)

可以用来为低版本IE样式进行重定义或是对低版本进行提示等操作

知识来源:http://www.cnblogs.com/poissonnotes/archive/2010/05/28/1745996.html


navigator对象:

包含浏览器返回的版本信息、内核信息等:http://www.w3school.com.cn/jsref/dom_obj_navigator.asp

工作的时候发现双核的浏览器在使用不同内核的时候navigator会返回不同的信息,而不是同时把两者一起返回,并且浏览器也会披着”羊皮“,假装能兼容其他不同的一些内核,这个段子的来源可以在百度百科上略知一二

http://baike.baidu.com/link?url=xZeqYomtEAjG4MsQ0cfu39bCFTSsftpZIfar4HqcXkqFNJi8X0FUHPOUN2UzI8MW5OMDilTaP4Qy8UDDNzDmmKajnjkbJl0IsBaypOUVIeGuHPwjl-BSETepJhfqVJvoHRAI6tVebDfwhfdJLkrMo_url=xZeqYomtEAjG4MsQ0cfu39bCFTSsftpZIfar4HqcXkqFNJi8X0FUHPOUN2UzI8MW5OMDilTaP4Qy8UDDNzDmmKajnjkbJl0IsBaypOUVIeGuHPwjl-BSETepJhfqVJvoHRAI6tVebDfwhfdJLkrMo_


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值