由于 IE 浏览器的兼容性问题,IE 10 以下的版本会出现兼容性问题,有时需要编写不同的样式来达到兼容的效果,

下面的代码可以实现判断 IE 版本号,并根据不同版本插入 Style CSS

<script>
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion < 10) {
var css = '.menu_item li:hover > ul,.menu_item ul li:hover > ul,.menu_item .focus > ul,.menu_item .focus > ul{clip:inherit;overflow:inherit;height:inherit;width:inherit;}',
head = document.head || document.getElementsByTagName('head')[0],
style = document.createElement('style');
head.appendChild(style);
style.type = 'text/css';
if (style.styleSheet) {
// This is required for IE8 and below.
style.styleSheet.cssText = css;
}
else {
style.appendChild(document.createTextNode(css));
}
}
else {
$(document).ready(function () {
$(document).click(function() {
$(".menu_item>.menu-item-has-children>a").removeAttr("href");
var nav = $("#" + $(this).attr("id") + " .sub-menu");
nav.css('clip', '');
var nav_sub_menu = $(".sub-menu");
nav_sub_menu.css('clip', '');
$(".menu_item").css('cursor', 'pointer');
});
$(".menu_item .menu-item-has-children").click(function(event) {
event.stopPropagation();
$(".menu_item>.menu-item-has-children>a").removeAttr("href");
var nav = $("#" + $(this).attr("id") + " .sub-menu"); if (nav.css('clip') == 'inherit' || nav.css('clip') == 'auto') {
nav.css('clip', '');
}
else {
var nav_sub_menu = $(".sub-menu");
nav_sub_menu.css('clip', '');
nav.css('clip', 'inherit');
}
$(".menu_item").css('cursor', 'pointer');
});
});
}
}</script>

Javascript 判断 IE 版本,实现插入不同的 Style 标签和样式的更多相关文章

  1. JavaScript判断IE版本

    判断IE兼容到IE11 IE浏览器与非IE浏览器的区别是IE浏览器支持ActiveXObject,但是非IE浏览器不支持ActiveXObject.在IE11浏览器还没出现的时候我们判断IE和非IE经 ...

  2. [JS]JavaScript判断操作系统版本

    function detectOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.platform == " ...

  3. javascript判断浏览器的版本

    在javascript中直接的使用navigator.userAgent就可以获取当前浏览器的版本等信息,以下是列出来的关于不同浏览器显示的值(Windows.Android.iPhone): IE6 ...

  4. JavaScript判断浏览器类型及版本

    JavaScript是前端开发的主要语言,我们可以通过编写JavaScript程序来判断浏览器的类型及版本.JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一 ...

  5. (转)JavaScript判断浏览器类型及版本

    IE 只有IE支持创建ActiveX控件,因此她有一个其他浏览器没有的东西,就是ActiveXObject函数.只要判断window对象存在ActiveXObject函数,就可以明确判断出当前浏览器是 ...

  6. 通过JavaScript判断当前浏览器版本

    从别人处拷贝,只用于自己学习之用.参考源自:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html JavaScript是前端开发 ...

  7. javascript判断手机浏览器版本信息

    <script type="text/javascript"> /* * 智能机浏览器版本信息: * */ var browser={ versions:functio ...

  8. JavaScript判断移动端及pc端访问不同的网站

    JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...

  9. HMTL判断ie版本

    html判断IE版本 1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> 2. <!--[if IE]> ...

  10. html判断IE版本

    html判断IE版本 . <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> . <!--[if IE]> ...

随机推荐

  1. iStore实现 SmartDNS + AdGuard Home IP优选+广告屏蔽

    iStore实现 SmartDNS + AdGuard Home IP优选+广告屏蔽 参考自openwrt 官方版 安装配置 AdGuard Home + smartdns 告别广告烦扰 教程 软路由 ...

  2. Chocolate

    提供一种比较清新的做法. 思路:贪心. 思考:如果在巧克力上横向切一刀,那么纵向要切的刀数就会加一.如果在巧克力上纵向切一刀,那么横向要切的刀数就会加一. 结论:要先切代价大的,再切代价小的. 做法: ...

  3. 阿里微服务解决方案-Alibaba Cloud之负载均衡(Feign)(五)

    一.基于 Feign 的负载均衡 OpenFeign 提供的负载均衡很简单,只需要将相同服务的名称保持一致,并在 Feign Client 的Service中指定名称即可. 例如:希望将端口号8000 ...

  4. USB工程应用基础概念简介

    USB 是一种串行传输总线,使用差分信号传输数据,USB 设备支持热插拔. USB 规格及接口 USB 传输速率 USB 标准的不同版本有不同的传输速率和电压电流特性. 标准版本 发布日期 速率代码 ...

  5. Just:告别 Makefile 的现代命令行任务运行器

    本文推荐的一个轻量级命令行工具--Just,它提供了一种简单高效的方式来管理项目任务,类似于传统的 Make 工具,但具有更简洁的语法和更现代化的功能. 我目前在一些小项目中开始使用它来管理一些日常的 ...

  6. SM30里DEC数据显示0

    需求:DEC数据在维护的时候显示0 1,设置数据元素对于的域带转换历程. 2,写转换历程函数(注意两个历程的输入和输出类型,这个需要修改) FUNCTION conversion_exit_zdays ...

  7. hot100之二分查找

    搜索插入位置(035) class Solution { public int searchInsert(int[] nums, int target) { int n = nums.length; ...

  8. 状态机DP

    简介 简单来说就是从一个状态变成另一个状态的路径 感觉还是挺新颖的. 714 https://leetcode-cn.com/problems/best-time-to-buy-and-sell-st ...

  9. FRP 各种操作系统的接口

    简介 类似于TeamViewer之类,而更好的用内网穿透的东西. 参考链接 https://zhuanlan.zhihu.com/p/79793246

  10. ICEE-MOS+BJT: 场效应管和三极管的比较

    场效应管是在三极管的基础上而开发出来的. 三极管通过电流的大小控制输出,输入要消耗功率. 场效应管是通过输入电压控制输出,不消耗功率. 场效应管和三极管的区别是电压和电流控制,但这都是比较的. 电压控 ...