找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

通达OA官网网站
搜索
查看: 3441|回复: 8

通达OA 2013增强版IE8版本提醒

[复制链接]

10

主题

44

回帖

604

牛毛

游客

积分
658
发表于 2014-11-6 13:00:28 | 显示全部楼层 |阅读模式
由于IE版本的原因,OA系统在各个电脑上表现各有差异(会出现表单错位的情况),于是想到打开OA时提示更新IE8。先上效果图(各种马赛克)。
客户端登录:



WEB登录:


修改方法:
客户端,修改\MYOA\webroot\static\js目录下ispirit_index.js文件,
1.在285行添加函数
  1. function checkIE(){
  2.         var v = 0;
  3.         var ua = navigator.userAgent; //获取用户端信息
  4.         var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
  5.         if (b >= 0) {
  6.                 //截取版本号字符串,并转换为数值
  7.                 v = (ua.substring(b + 5, ua.indexOf(";", b)));
  8.         }
  9.        
  10.         if(b < 0 || parseFloat(v) < 8){
  11.                 if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
  12.                   window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
  13.                 }
  14.         }
  15.        
  16.         return;
  17.     };
复制代码
2.在291行添加函数调用。
  1. //检测IE浏览器版本是否为IE8及以上版本
  2. checkIE();
复制代码
3.保存并关闭文件。
完成后代码截图:


WEB,修改\MYOA\webroot\static\templates\2013_01目录下index.html文件,
1.在10行添加函数
  1. <script type="text/javascript">
  2.         function checkIE(){
  3.                 var v = 0;
  4.                 var ua = navigator.userAgent; //获取用户端信息
  5.                 var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
  6.                 if (b >= 0) {
  7.                         //截取版本号字符串,并转换为数值
  8.                         v = (ua.substring(b + 5, ua.indexOf(";", b)));
  9.                 }
  10.                
  11.                 if(b < 0 || parseFloat(v) < 8){
  12.                         if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
  13.                           window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
  14.                         }
  15.                 }
  16.                
  17.                 document.form1.{focus_filed}.focus();
  18.                
  19.                 return;
  20.         }
复制代码
2.修改11行<body>
  1. <body onload="javascript:checkIE();" scroll="auto">
复制代码
3.保存并关闭文件。
完成后代码截图:






Unnamed QQ Screenshot20141106123851.png
Unnamed QQ Screenshot20141106123307.png
Unnamed QQ Screenshot20141106124832.png
Unnamed QQ Screenshot20141106125907.png

257

主题

1154

回帖

1万

牛毛

游客

积分
18851
QQ
发表于 2014-11-17 11:09:13 | 显示全部楼层
谢谢!
收藏了。

38

主题

93

回帖

711

牛毛

游客

积分
842
发表于 2014-12-18 10:17:33 | 显示全部楼层
本帖最后由 19831031 于 2014-12-18 10:19 编辑

现在大多都使用IE11了,这个代码检测IE11也提示低于IE8.因为IE11取消了MSIE信息,能否帮忙改一下。谢谢
下面的代码可以检测出IE11 。
<script type="text/javascript">
                                var userAgent = navigator.userAgent,
                                rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
                                rFirefox = /(firefox)\/([\w.]+)/,
                                rOpera = /(opera).+version\/([\w.]+)/,
                                rChrome = /(chrome)\/([\w.]+)/,
                                rSafari = /version\/([\w.]+).*(safari)/;
                                var browser;
                                var version;
                                var ua = userAgent.toLowerCase();
                                function uaMatch(ua) {
                                        var match = rMsie.exec(ua);
                                        if (match != null) {
                                                return { browser : "IE", version : match[2] || "0" };
                                        }
                                        var match = rFirefox.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rOpera.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rChrome.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rSafari.exec(ua);
                                        if (match != null) {
                                                return { browser : match[2] || "", version : match[1] || "0" };
                                        }
                                        if (match != null) {
                                                return { browser : "", version : "0" };
                                        }
                                }
                                var browserMatch = uaMatch(userAgent.toLowerCase());
                                if (browserMatch.browser) {
                                        browser = browserMatch.browser;
                                        version = browserMatch.version;
                                }
                                document.write(browser+version);               
                                        </script>

38

主题

93

回帖

711

牛毛

游客

积分
842
发表于 2014-12-18 10:18:48 | 显示全部楼层
<script type="text/javascript">
                                var userAgent = navigator.userAgent,
                                rMsie = /(msie\s|trident.*rv:)([\w.]+)/,
                                rFirefox = /(firefox)\/([\w.]+)/,
                                rOpera = /(opera).+version\/([\w.]+)/,
                                rChrome = /(chrome)\/([\w.]+)/,
                                rSafari = /version\/([\w.]+).*(safari)/;
                                var browser;
                                var version;
                                var ua = userAgent.toLowerCase();
                                function uaMatch(ua) {
                                        var match = rMsie.exec(ua);
                                        if (match != null) {
                                                return { browser : "IE", version : match[2] || "0" };
                                        }
                                        var match = rFirefox.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rOpera.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rChrome.exec(ua);
                                        if (match != null) {
                                                return { browser : match[1] || "", version : match[2] || "0" };
                                        }
                                        var match = rSafari.exec(ua);
                                        if (match != null) {
                                                return { browser : match[2] || "", version : match[1] || "0" };
                                        }
                                        if (match != null) {
                                                return { browser : "", version : "0" };
                                        }
                                }
                                var browserMatch = uaMatch(userAgent.toLowerCase());
                                if (browserMatch.browser) {
                                        browser = browserMatch.browser;
                                        version = browserMatch.version;
                                }
                                document.write(browser+version);               
                                        </script>

61

主题

397

回帖

1492

牛毛

游客

积分
1871
发表于 2014-12-18 16:39:47 | 显示全部楼层
不错,收藏了。:handshake

10

主题

44

回帖

604

牛毛

游客

积分
658
 楼主| 发表于 2014-12-19 13:37:50 | 显示全部楼层
本帖最后由 sany217 于 2014-12-19 16:59 编辑
19831031 发表于 2014-12-18 10:17
现在大多都使用IE11了,这个代码检测IE11也提示低于IE8.因为IE11取消了MSIE信息,能否帮忙改一下。谢谢
下 ...

IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:
  1. function checkIE(){
  2.         var b = 0;
  3.         var v = 0;
  4.         var ua = navigator.userAgent;                                                         //获取用户浏览器UA信息
  5.         
  6.         if (ua.indexOf("Trident") < 0) {                                                //检测特殊字符串"Trident"的位置
  7.                 b = ua.indexOf("MSIE ");                                                         //检测特殊字符串"MSIE "的位置
  8.                 if (b >= 0) {
  9.                         v = (ua.substring(b + 5, ua.indexOf(";", b)));        //截取版本号字符串,并转换为数值
  10.                 }
  11.                
  12.                 if(b < 0 || parseFloat(v) < 8){
  13.                         if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
  14.                           window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
  15.                         }
  16.                 }
  17.         }
  18.         
  19.         document.form1.PASSWORD.focus();
  20.         
  21.         return;
  22. }
复制代码

利用正则表达式判断略显复杂(主要降低了可读性),不过速度方面应该不错,且转换UA为小写提高了代码的健壮性。
  1. function checkIE(){
  2.                         var rMsie = /(msie\s|trident.*rv:)([\w.]+)/;
  3.                         var ua = navigator.userAgent.toLowerCase();
  4.                         var match = rMsie.exec(ua);
  5.                         if (match != null && parseFloat(match[2]) >= 8) {
  6.                                 document.form1.PASSWORD.focus();
  7.                                 return;
  8.                         }
  9.                         
  10.                         if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
  11.                           window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
  12.                         }
  13.                         document.form1.PASSWORD.focus();
  14.                 }
复制代码

PS:IE8位置为 \webroot\ie8\IE8-WindowsXP-x86-CHS.exe



test_checkie.rar

790 Bytes, 下载次数: 8

38

主题

93

回帖

711

牛毛

游客

积分
842
发表于 2014-12-19 16:59:27 | 显示全部楼层
sany217 发表于 2014-12-19 13:37
IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:
利用正则表达式判断 ...

非常感谢

141

主题

613

回帖

4099

牛毛

游客

积分
4856
QQ
发表于 2015-1-13 23:54:38 来自手机 | 显示全部楼层
sany217 发表于 2014-12-19 13:37
IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:
利用正则表达式判断 ...

嗯,学习了。伙计。

31

主题

205

回帖

660

牛毛

一级牛人

积分
660
发表于 2015-5-21 06:07:09 | 显示全部楼层 来自 浙江省温州市
这个想法不错,建议通达安装包中也提供这些东西,为用户提供方便。:)
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

咨询电话:400 818 0505 通达OA,国内协同管理软件行业内唯一的央企单位,中国协同OA软件的领跑者,优秀协同办公解决方案供应商

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|由NB5牛论坛提供技术支持NB5用户社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2024-12-23 23:23 , Processed in 0.151500 second(s), 49 queries , Yac On.

Powered by Discuz

Copyright © 2001-2024, 北京通达信科科技有限公司.

快速回复 返回顶部 返回列表