根据上一篇 http://blog.youkuaiyun.com/yangyuyu77584/article/details/39694387 博文方案,现给Javascript代码实现。
1.浏览器的判断代码。(jQuery新版我还没有使用,不知道是否已经修改了)这里我自己补充一个判断方法,代码如下:
function getBrowserVersion()
{
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 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" };
}
}
return uaMatch(userAgent.toLowerCase());
}
2.JS脚本中要使用OCX时,就去判断浏览器。根据浏览器的不同,大致可以分成三类:
(1)、非IE的浏览器;
(2)、IE8.9的64位浏览器;
(3)、IE浏览器除(IE8.9的64位浏览器)。
判断代码如下:
var browserVer = getBrowserVersion();
var nBrowserVersion = parseInt(browserVer.version,10);
if("IE"!= browserVer.browser)
{
//你的代码
}
else if(("IE"== browserVer.browser) &&
((nBrowserVersion == 8) || (nBrowserVersion == 9)) &&
(window.navigator.platform == "Win64"))
{
//你的代码
}
else
{
//你的代码
}
注:window.navigator.platform
Returns a string representing the platform of the browser.(即返回浏览器平台的字符串)比如“Win32”“Win64”等。
进一步了解这个方法可能对MAC系统有问题(可能)。这里后续我继续研究,会进一步更新。请博友原谅.
注:Mac系统不能安装IE浏览器。还有这里没有考虑 像win2003 sever与win2008 sever等一些服务器系统。这里主要是解决个人电脑个人操作系统。
还有,上面代码首先判断是否是IE浏览器,再次判断浏览器版本号。最后才去判断浏览器的平台。所有这样代码是合理的。如果博友们有更好的版本请评论与指教,共同进步。谢谢
这样的Javascript代码就可以解决OCX上的问题。