通过代码实例跟我学JavaScript ——浏览器中的内置对象及应用实例(第1部分)
1.1浏览器中的内置对象及应用实例(第1部分)
1、浏览器的内部对象的层次关系
使用浏览器的内部对象系统, 可实现与HTML文档进行交互。它的作用是将浏览器窗口内的各个相关元素组织封装起来,提供给Web程序设计人员使用,从而减轻编程人的劳动,提高设计Web页面的能力。浏览器的内部对象的层次关系如下:
2、浏览器对象层次及其主要作用
(1)浏览器对象(navigator)
提供有关当前浏览器的环境信息(版本、厂家等信息),可以通过navigator.appName 成员属性获得浏览器的名称类型,代码如下:
if(navigator.appName =="Microsoft Internet Explorer"){
//使用IE
}
if(navigator.appName=="Netscape"){ //fireFox或者Google的浏览
}
browserVer = parseFloat(navigator.appVersion);
if(browserVer >= 6){
}
(2)窗口对象(window)
window对象处于浏览器对象层次的最顶端,它提供了处理浏览器窗口的各种成员方法和
属性,代表整个浏览器窗口。在window对象内又包括如下的各个子对象:
1)位置对象(location):location对象提供了与当前打开的URL一起工作的方法和属性,
代表当前页面的URL,它是一个静态的对象(不需要创建出它就可以使用)。
2)历史对象(history):history对象提供了与历史清单有关的信息,代表已经访问过的页
面URL。
3)文档对象(document):document对象包含了与文档元素(elements)一起工作的对象,它
将这些元素封装起来供编程人员使用,代表当前页面的整个内容。
4)状态对象(status):表示窗口状态栏中的临时信息。
3、浏览器对象(navigator)
(1)两个最重要的成员属性
navigator对象有两个最重要的成员属性:appName(代表浏览器的名称)和appVersion(代表浏览器的版本)。
(2)其它的成员属性
4、应用appName成员属性显示浏览器的厂商类型的代码示例
var messageInDialog;
messageInDialog=navigator.appName ;
showDialog(messageInDialog);
5、应用appVersion属性识别浏览器的版本类型的代码示例
(1)代码示例
var messageInDialog;
messageInDialog=navigator.appVersion ;
showDialog(messageInDialog);
(2)获得具体的版本号信息
由于调用appVersion 属性返回的不仅仅是一个版本号(请见上例执行的结果示图),要
把版本号从appVersion返回的字符串中取出来,需要调用内置的系统函数parseFloat()把一个字符串中第一个十进制数的内容提出来并返回。
特别注意! 对IE5.0或更高版本,这个版本号是错误的!微软在IE5.0和6.0的appVersion 字符串都是以4.0开头的!!!也就是JavaScript程序代码在 IE6、IE5 和 IE4 中的获得的版本号是相同的。因此,需要应用https://www.360docs.net/doc/ba1365789.html,erAgent识别各个具体的版本号。
6、综合应用识别浏览器的类型和版本的代码示例
var messageInDialog,appVersion,appName;
appName=navigator.appName;
appVersion=navigator.appVersion ;
var versionNo=parseFloat(appVersion);
if ((appName=="Netscape"||appName=="Microsoft Internet Explorer")
&& (versionNo>=4)){
messageInDialog="你的浏览器符合本系统的要求!";
}else{
messageInDialog="你的浏览器不符合本系统的要求!";
}
showDialog(messageInDialog);
7、也可以利用userAgent属性统一获得浏览器的厂商和版本等信息
(1)window.alert(https://www.360docs.net/doc/ba1365789.html,erAgent);执行后的结果
(2)动态获得浏览器的类型及相应的版本
var browserType=https://www.360docs.net/doc/ba1365789.html,erAgent;
if(browserType.indexOf("MSIE 6.0")> -1){
window.alert("你所用的浏览器为IE6!");
}
else if(browserType.indexOf("MSIE 7.0")> -1){ window.alert("你所用的浏览器为IE7!");
}
else if(browserType.indexOf("MSIE 8.0")> -1){ window.alert("你所用的浏览器为IE8!");
}
else if(browserType.indexOf("Firefox")> -1){ window.alert("你所用的浏览器为FireFox!"); }
(3)动态获得和识别当前浏览器的版本和类型的代码示例
var browserType=getBrowserTypeInfo();
window.alert(browserType);
function getBrowserTypeInfo(){
var browserTypeInfo=https://www.360docs.net/doc/ba1365789.html,erAgent;
var browserType;
if(browserTypeInfo.indexOf("Maxthon") > -1){
browserType="Maxthon";
}
else if(browserTypeInfo.indexOf("TencentTraveler") > -1){ browserType="TT";
}
else if(browserTypeInfo.indexOf("MSIE 6.0") > -1){ browserType="IE6";
}
else if(browserTypeInfo.indexOf("MSIE 7.0")>-1){
browserType="IE7";
}
else if(browserTypeInfo.indexOf("MSIE 8.0")>-1){
browserType="IE8";
}
else if(browserTypeInfo.indexOf("Firefox")>-1){
browserType="Firefox";
}
else if(browserTypeInfo.indexOf("Chrome")>-1){
browserType="Chrome";
}
else
if(browserTypeInfo.indexOf("Safari")>-1&&browserTypeInfo.indexOf("Chrome")==-1 ){
browserType="Safari";
}
else if(browserTypeInfo.indexOf("Opera")>-1){
browserType="Opera";
}
else{
browserType="其他不知道类型的浏览器";
}
return browserType;
}
上面的代码在IE和fireFox浏览器中的执行结果如下:
(4)另一个获得浏览器的类型和操作系统信息的代码示例
var someArray=getBrowserTypeInfoAndOSType();
window.alert("你的操作系统是:"+someArray[0]+" 浏览器为:"+someArray[1]);
function getBrowserTypeInfoAndOSType(){ //获取系统的环境
var ua=https://www.360docs.net/doc/ba1365789.html,erAgent;
var type=0,agent,system;
if(ua.indexOf("Maxthon")>-1){
type="Maxthon";
}
else if(ua.indexOf("TencentTraveler")>-1){
type="TT";
}
else if(ua.indexOf("MSIE 6.0")>-1){
type="IE6";
}
else if(ua.indexOf("MSIE 7.0")>-1){
type="IE7";
}
else if(ua.indexOf("MSIE 8.0")>-1){
type="IE8";
}
else if(ua.indexOf("Firefox")>-1){
type="Firefox";
}
else if(ua.indexOf("Chrome")>-1){
type="Chrome";
}
else if(ua.indexOf("Safari")>-1&&ua.indexOf("Chrome")==-1){ type="Safari";
}
else if(ua.indexOf("Opera")>-1){
type="Opera";
}
else{
type="Others";
};
if(ua.indexOf("Windows")>-1){
system="Windows";
}
else if(ua.indexOf("iPhone")>-1){
system="iPhone";
}
else if(ua.indexOf("SymbOS")>-1){
system="SymbOS";
}
else{
system="Others";
}
return [system,type];
}
上面的代码在IE浏览器中的执行结果如下:
8、根据用户所使用的浏览器的不同版本和类型动态地加载不同的CSS样式单文件的代码示例
"https://www.360docs.net/doc/ba1365789.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">
function changeSkin(){ //修改link标签的href属性,重新加载新的CSS文件if(https://www.360docs.net/doc/ba1365789.html,erAgent.indexOf("MSIE")>0){ //是否是IE浏览器
if(https://www.360docs.net/doc/ba1365789.html,erAgent.indexOf("MSIE 6.0")>0){ //对于IE 6.0
document.getElementById('cssLink').href="IE6.css";
}
if(https://www.360docs.net/doc/ba1365789.html,erAgent.indexOf("MSIE 7.0")>0){ // 对于7.0
document.getElementById('cssLink').href="IE7.css";
}
}
else{
document.getElementById('cssLink').href="other.css";
}
}
9、Location对象包含有关当前文档的URL信息
(1)最重要的属性href
应用它可以实现页面动态跳转,只需要将目标URL设置为一个变量。代码示例如下:window.location.href="https://www.360docs.net/doc/ba1365789.html,/";
(2)刷新本页面的方法window.location.reload()及应用示例
"https://www.360docs.net/doc/ba1365789.html,/TR/html4/loose.dtd">
function refreshPage(){
window.location.reload();
}
nowDate=new Date() ;
document.write("getTime()="+nowDate.getTime());
注意页面中是否包含有表单,浏览器对页面的刷新方式是不同的。有些网页,刷新浏览器窗口时,会弹出一个提示的对话框窗口,点击其中的“确定”按钮后才会真正地进行刷新。而有的页面不会提示,不弹出提示对话框窗口,直接就刷新了。
如果页面中没有包含表单,则不会弹出提示对话框窗口。如果页面有form表单,并且表单的提交方式为如下形式时: