兼容问题一直困扰着广告大的网站建设程序员们,再怎么困扰也必须面对,因为当今是全球市经济时代.生活在朝鲜原来也有庆幸的地方,什么都单纯,估计也不用考虑这种兼容问题,回到现实中,我们前面介绍过如何使用javascript来识别不同的浏览器,我们进一步地完善我们的程序,让其能识别各种平台.在不同的平台下可能会有不同的问题,目前的三大主流平台分别是:Windows、Mac和Unix(包括各种Linux).南昌网站设计公司技术人员结合前面分析的代码,还需要像下面这样再添加一个新对象:
var system = {
win: false,
mac: false,
x11: false,
};
//在此显示检测出平台种类 return {
engine: engine,
browser: browser,
system: system
}; }();
显然,上面的代码中又添加了一个包含3个属性的新变量system。其中,win属性表示是否为Windows平台,mac表示Mac,而xll表示Unix.与呈现引擎不同,在不能访问操作系统或版本的情况下,平台信息通常是很有限的。对这三个平台而言,浏览器一般只报告Windows版本。南昌网站设计公司技术员认为,新变量system的每个属性最初都保存着布尔值false,而不是像呈现引擎属性那样保存着数字值。
在确定平台时,检测navigator .platform要比检测用户代理字符串更简单,后者在不同浏览器中会给出不同的平台信息。而navigator.platform属性可能的值包括"Win32"、"Win64“、"MacPPC"、 "Maclntel"、"X11"和"Linux i686",这些值在不同的浏览器中都是一致的。检测平台的代码非常直观,如下所示:
var p=navigator.platform;
system.win=p.indexOf("Win") ==O;
system.mac=p.indexOf("Mac“)==0;
system.xll= (p.indexOf("X11") ==O)|| (p.indexOf( "Linux") ==o);
以上代码使用indexOf()方法来查找平台字符串的开始位置。虽然"Win32"是当前浏览器唯一支持的Windows字符串,但随着向64位Windows架构的迁移,将来很可能会出现"Win64"平台信息值。
为了对此有所准备,检测平台的代码中查找的只是字符串"Win "IYJ开始位置。而检测Mac平台的方式也类似,同样是考虑到了MacPPC和Maclntel。在检测Unix时,则同时检查了字符串"X11"和"Linux"在平台字符串中的开始位置,从而确保了代码能够向前兼容其他变体。
Gecko的早期版本在所有Windows平台中都返回字符串"Windows",在所有Mac平台中则都返回字符串"Macintosh"。不过,这都是Firefox 1发布以前的事了,Firefox 1确定了navigator .platform的值。
本文仅限内部技术人员学习交流,不得作于其他商业用途.文章出自:南昌网站建设公司-百恒网络 http://www.jxbh.cn 如转载请注明出处!