|
主题: 如何检测浏览者的操作系统,根据系统使用不同的CSS链接文件!
|
 helmet
职务:版主
等级:4
金币:10.0
发贴:1559
注册:2004/1/30 15:59:27
|
#12001/10/23 5:07:30
1,由于navigator.appVersion属性的值一般都这样表示: 4.0 (compatible; MSIE 6.0; Windows NT 5.1) XP 4.0 (compatible; MSIE 4.01; Windows 95) 95 4.0 (compatible; MSIE 5.0; Windows 98) 98 4.0 (compatible; MSIE 5.0; Windows NT ) NT
所以,我们只假设有3种情况: 即用户的操作系统是:95,98 或NT。
2,外部链接的css文件的html语法是:
~~~~~~~~~注意,加了ID。 用js调用它的链接的语法是: document.all.stylelink.href
3,检验navigator.appVersion属性的值中的关键字的语句是: if (x.indexOf("95")!="-1") //意为:有"95"这两个字。 { }
4,所以,函数这样写:
|
 5D荣誉斑竹
职务:普通成员
等级:5
金币:10.0
发贴:3292
注册:2001/5/24 10:01:29
|
#22001/10/23 11:09:35
非常好,我想做一个站,随机出现不同的效果,利用随机出现不同的CSS
|
 老张
职务:普通成员
等级:5
金币:10.0
发贴:2796
注册:2001/5/11 12:41:55
|
#32001/10/23 12:47:13
再次表示感谢,没办法给你加分了
|
 求可知
职务:普通成员
等级:3
金币:10.0
发贴:718
注册:2001/8/18 12:32:59
|
#42001/10/23 17:07:00
不错,利用对系统的判断语句可以实现简单的交互网页:-)
|
 老张
职务:普通成员
等级:5
金币:10.0
发贴:2796
注册:2001/5/11 12:41:55
|
#52001/10/23 23:24:45
哎!原打算在Win9x下面实现:Win2000的"MS Shell Dlg"字体效果,可是没找到一种合适的。Arial 字形差不多,但稍大了点,最不好的是常用的符号"<>"效果差别太大。 其它字体好像就更不像了。 请推荐一种合适的字体:在Win9x下面实现:Win2000的"MS Shell Dlg"字体效果
|
 5D荣誉斑竹
职务:普通成员
等级:5
金币:10.0
发贴:3292
注册:2001/5/24 10:01:29
|
#62001/10/24 1:56:57
这个字体很奇怪啊,没有字体文件的
|
 老张
职务:普通成员
等级:5
金币:10.0
发贴:2796
注册:2001/5/11 12:41:55
|
#72001/10/24 17:27:03
这个字体是Win2K里面的:Microsoft Sans Serif, 它是通过注册表的一个键置用替代的方式定义的。 但Win9x下没有这个字体。
|
 王原
职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2001/5/21 21:39:53
|
#82001/10/24 22:02:09
下面的代码来自微软的网站(微软的网站其实是兼容各种浏览器最好的):
function BrowserData(sUA)
{
this.userAgent = sUA.toString();
var rPattern = /(MSIE)\s(\d+)\.(\d+)((b|p)([^(s|;)]+))?;?(.*(98|95|NT|3.1|32|Mac|X11))?\s*([^\)]*)/;
if (this.userAgent.match(rPattern))
{
this.browser = "MSIE";
this.majorVer = parseInt(RegExp.$2) || 0;
this.minorVer = RegExp.$3.toString() || "0";
this.betaVer = RegExp.$6.toString() || "0";
this.platform = RegExp.$8 || "Other";
this.platVer = RegExp.$9 || "0";
}
else if (this.userAgent.match(/Mozilla[/].*(95[/]NT|95|NT|98|3.1).*Opera.*(\d+)\.(\d+)/))
{
//"Mozilla/4.0 (Windows NT 5.0;US) Opera 3.60 [en]";
this.browser = "Opera";
this.majorVer = parseInt(RegExp.$2) || parseInt(RegExp.$2) || 0;
this.minorVer = RegExp.$3.toString() || RegExp.$3.toString() || "0";
this.platform = RegExp.$1 || "Other";
}
else if (this.userAgent.match(/Mozilla[/](\d*)\.?(\d*)(.*(98|95|NT|32|16|68K|PPC|X11))?/))
{
//"Mozilla/4.5 [en] (WinNT; I)"
this.browser = "Nav";
this.majorVer = parseInt(RegExp.$1) || 0;
this.minorVer = RegExp.$2.toString() || "0";
this.platform = RegExp.$4 || "Other";
}
else
{
this.browser = "Other";
}
this.getsNavBar = ("MSIE" == this.browser && 4 <= this.majorVer && "Mac" != this.platform && "X11" != this.platform);
this.doesActiveX = ("MSIE" == this.browser && 3 <= this.majorVer && ("95" == this.platform || "98" == this.platform || "NT" == this.platform));
this.fullVer = parseFloat( this.majorVer + "." + this.minorVer );
this.doesPersistence = ("MSIE" == this.browser && 5 <= this.majorVer && "Mac" != this.platform && "X11" != this.platform);
}
var oBD = new BrowserData(window.navigator.userAgent);
由于这段代码完全兼容Netscape,所以可以实现高级的浏览器判别。具体字段的意思我就不解释了。
|
 kurtf
职务:普通成员
等级:1
金币:1.0
发贴:151
注册:2001/7/21 9:29:26
|
#92001/10/26 8:34:13
但是有一个问题啊!自己机子上有的字体,而别人机子上又没有,岂不是白搭! :(
|
 5D荣誉斑竹
职务:普通成员
等级:5
金币:10.0
发贴:3292
注册:2001/5/24 10:01:29
|
#102001/10/27 16:29:25
可以检测用户的系统语言吗? 比如检测后进入中文版,big5,英文版。。。。
|
 helmet
职务:版主
等级:4
金币:10.0
发贴:1559
注册:2004/1/30 15:59:27
|
#112001/10/28 13:16:54
window.navigator.browserLanguage 浏览器的语言。 window.navigator.systemLanguage 系统语言。
我的计算机是中文的,显示" zh-cn " .
|