通达OA 2013增强版IE8版本提醒
由于IE版本的原因,OA系统在各个电脑上表现各有差异(会出现表单错位的情况),于是想到打开OA时提示更新IE8。先上效果图(各种马赛克)。客户端登录:
WEB登录:
修改方法:
客户端,修改\MYOA\webroot\static\js目录下ispirit_index.js文件,
1.在285行添加函数
function checkIE(){
var v = 0;
var ua = navigator.userAgent; //获取用户端信息
var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
if (b >= 0) {
//截取版本号字符串,并转换为数值
v = (ua.substring(b + 5, ua.indexOf(";", b)));
}
if(b < 0 || parseFloat(v) < 8){
if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
}
}
return;
};2.在291行添加函数调用。
//检测IE浏览器版本是否为IE8及以上版本
checkIE();3.保存并关闭文件。
完成后代码截图:
WEB,修改\MYOA\webroot\static\templates\2013_01目录下index.html文件,
1.在10行添加函数
<script type="text/javascript">
function checkIE(){
var v = 0;
var ua = navigator.userAgent; //获取用户端信息
var b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
if (b >= 0) {
//截取版本号字符串,并转换为数值
v = (ua.substring(b + 5, ua.indexOf(";", b)));
}
if(b < 0 || parseFloat(v) < 8){
if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
}
}
document.form1.{focus_filed}.focus();
return;
}2.修改11行<body>
<body onload="javascript:checkIE();" scroll="auto">3.保存并关闭文件。
完成后代码截图:
谢谢!
收藏了。 本帖最后由 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 || "0" };
}
var match = rFirefox.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rOpera.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rChrome.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rSafari.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "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> <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 || "0" };
}
var match = rFirefox.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rOpera.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rChrome.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "0" };
}
var match = rSafari.exec(ua);
if (match != null) {
return { browser : match || "", version : match || "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> 不错,收藏了。:handshake 本帖最后由 sany217 于 2014-12-19 16:59 编辑
19831031 发表于 2014-12-18 10:17 static/image/common/back.gif
现在大多都使用IE11了,这个代码检测IE11也提示低于IE8.因为IE11取消了MSIE信息,能否帮忙改一下。谢谢
下 ...
IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:function checkIE(){
var b = 0;
var v = 0;
var ua = navigator.userAgent; //获取用户浏览器UA信息
if (ua.indexOf("Trident") < 0) { //检测特殊字符串"Trident"的位置
b = ua.indexOf("MSIE "); //检测特殊字符串"MSIE "的位置
if (b >= 0) {
v = (ua.substring(b + 5, ua.indexOf(";", b))); //截取版本号字符串,并转换为数值
}
if(b < 0 || parseFloat(v) < 8){
if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
}
}
}
document.form1.PASSWORD.focus();
return;
}
利用正则表达式判断略显复杂(主要降低了可读性),不过速度方面应该不错,且转换UA为小写提高了代码的健壮性。function checkIE(){
var rMsie = /(msie\s|trident.*rv:)([\w.]+)/;
var ua = navigator.userAgent.toLowerCase();
var match = rMsie.exec(ua);
if (match != null && parseFloat(match) >= 8) {
document.form1.PASSWORD.focus();
return;
}
if(confirm('系统检测到您正在使用非IE8浏览器,为了保证你浏览效果,推荐您使用IE8运行本系统,请问是否下载安装包并升级?')){
window.location.href = "/ie8/IE8-WindowsXP-x86-CHS.exe";
}
document.form1.PASSWORD.focus();
}
PS:IE8位置为 \webroot\ie8\IE8-WindowsXP-x86-CHS.exe
sany217 发表于 2014-12-19 13:37 static/image/common/back.gif
IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:
利用正则表达式判断 ...
非常感谢 sany217 发表于 2014-12-19 13:37
IE8及以上版本均添加内核关键字“Trident”,则可以修改检测代码checkIE()函数如下:
利用正则表达式判断 ...
嗯,学习了。伙计。 这个想法不错,建议通达安装包中也提供这些东西,为用户提供方便。:)
页:
[1]