1 浏览器内置对象

内置对象:浏览器加载页面成功后自动创建的一系列对象
这些对象js可以直接使用 用于实现其页面动态效果

在这里插入图片描述

浏览器内置对象:浏览器通过内部解析html的程序
html解析:dom解析 document object model
                把文档本身及其所有的元素解析成对象 这些有关系的对象形成dom树

2 DHTML

动态的html:::Dynamic HTML
DHTML由:html+css+js+dom解析
        html语言提供标签 封装数据
        css语言提供属性 控制样式
        js语言提供对象的逻辑判断 实现元素的动态效果
        dom技术:把html标签解析为对象
html+css+js::前段三剑客
ajax=DHTML+ActiveXObject对象
注意:内置对象的使用查询:dhtml的api

在这里插入图片描述

class Student{}
class Person{}
class Teacher{
    //属性
    int age=41;
    String name="苗天宝";
    //集合
    float[] scores;
    List  friends;
    List  StudentList;
    //事件
    onXxxx;
    //方法
    void show(){}
    void add(){}
    //对象
    Person mather;
    Person wife;
}

3 window

<body>  
    <input  type="button" value="测试moveBy" onclick="test01MoveBy()"/><br/><!--给按钮注册点击事件-->
    <input  type="button" value="测试moveTo" onclick="test01MoveTo()"/><br/>
    <hr/>
    <input  type="button" value="测试setTimeout" onclick="test02SetTimeout()"/><br/>
    <input  type="button" value="测试setInterval" onclick="test02SetInterval()"/><br/>
    <input  type="button" value="测试ClearTimeout" onclick="test02ClearTimeout()"/><br/>
    <input  type="button" value="测试ClearInterval" onclick="test02ClearInterval()"/><br/>

    <hr/>
    <input  type="button" value="测试open" onclick="test03Open1()"/><br/>
    <input  type="button" value="测试close" onclick="test03Close()"/><br/>

    <script type="text/javascript">
        /*
			    window对象:::窗口
				注意:window可以省略
				属性:
				   screenLeft: 获取窗口距左的位置
				   screenTop:  获取窗口距上的位置
				方法:
                    1:弹出框
             			 window.alert( [sMessage]):只有确定按钮

						 bConfirmed = window.confirm([sMessage]):有确定和取消按钮 可以获取其选择

						 vTextData = window.prompt( [sMessage] [, sDefaultValue]):可以获取客户的输入 第二个参数是制定默认值
                    2:移动:浏览器兼容性很差
					     window.moveBy(iX, iY):按指定增量移动
						 window.moveTo(iX, iY):移动到指定位置
                    3:延迟执行、取消执行
					     window.clearInterval(iIntervalID):取消setInterval的延迟执行
						 window.clearTimeout(iTimeoutID):取消setTimeout的延迟执行
						 iTimerID = window.setInterval(vCode, iMilliSeconds [, sLanguage]):每iMilliSeconds后执行一次vCode
						 iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage]):等待iMilliSeconds后执行一次vCode
                    4:打开和关闭窗口
					     window.close()
						 oNewWindow = window.open( [sURL] [, sName] [, sFeatures] [, bReplace])

				事件:
                    1 : onload 文档加载成功
				练习:抽奖	

			   */
        //属性
        //alert(window.screenLeft+":::"+screenTop);
        //1:弹出框
        //alert("window.alert");
        //var b=window.confirm("window.confirm::1+1=2?");
        //alert("b="+b);
        //var v=window.prompt( "window.prompt 你几岁了?","19");
        //alert("v他输入的结果是:"+v);

        function test01MoveBy(){
            window.moveBy(100,100);
        }
        function test01MoveTo(){
            window.moveTo(300,300);
        }
        var id1,id2;
        function test02SetTimeout(){
            id1=window.setTimeout(test,3000);
        }
        function test02SetInterval(){
            id2=window.setInterval(test,3000);
        }
        function test02ClearTimeout(){
            window.clearTimeout(id1);
        }
        function test02ClearInterval(){
            window.clearInterval(id2);
        }
        function test(){
            alert('你好!'+new Date().getTime());
        }
        function test03Open1(){
            window.open("广告.html",null,"height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");
        }
        function test03Close(){
            window.close();
        }

        window.onload=function(){//文档加载成功事件
            var but1=document.getElementById("but1");
            alert(but1.value);
        }

    </script>

    <input type="button" value="没有注册事件的按钮" id="but1"/><br/>
</body>
  • 广告.html
<h1>跟着宝哥学java</h1>
<input  type="button" value="测试close" onclick="test03Close()"/><br/>
<input  type="button" value="测试moveTo" onclick="test03MoveTo()"/><br/>
<input  type="button" value="测试moveBy" onclick="test03MoveBy()"/><br/>
<script type="text/javascript">
    function test03Close(){
        window.close();
    } 
    function test03MoveTo(){
        window.moveTo(100,300);
    } 
    function test03MoveBy(){
        for(var i=0;i<10000;i++){
            if(i%100==0){
                window.moveBy(0,50);
                window.moveBy(50,0);
                window.moveBy(0,-50);
                window.moveBy(-50,0);
            }
        }
    } 
    window.onload=function(){
        window.setInterval(change,1000);				
    }
    function change(){
        var x=parseInt(Math.random()*1000);	
        var y=parseInt(Math.random()*800);
        window.moveTo(x,y);
    }			
</script>

4 location

<html>
    <head>
        <title>js04location内置对象</title>
        <meta charset="utf-8"/>
        <!--等等三秒 跳转到百度-->
        <!--
<meta http-equiv="refresh" content="3;url=http://www.baidu.com" />
-->
        <style type="text/css">
            table{
                width:900px;
                /*border:1px solid blue;*/
                margin:10px auto;
                border-collapse:collapse;/*合并相邻单元格之间的边框*/
            }
            td{
                font-size:24px;
                padding:10px;
                border:1px solid blue;
            }
        </style>
    </head>
    <body>  
        <input  type="button" value="测试location:href属性" onclick="test01LocationHref()"/><br/><!--给按钮注册点击事件-->
        <input  type="button" value="测试location:reload方法" onclick="test01LocationReload()"/><br/>

        <script type="text/javascript">
            /*
			       location:地址栏
				   属性:href:获取和设置地址栏的url
				   方法:reload:重新加载页面
			   */
            function test01LocationHref(){
                //alert("当前窗口的资源路径:url="+window.location.href);
                location.href="http://www.baidu.com";
            }
            function test01LocationReload(){
                location.reload();
            }
            /*
			   //等等三秒 跳转到百度
			   window.οnlοad=function(){
			       window.setTimeout("location.href='http://www.baidu.com';",3000);
			   }
			   */
        </script>
    </body>
</html>

5 history


<input  type="button" value="测试history" onclick="test01History()"/><br/><!--给按钮注册点击事件-->
<script type="text/javascript">
    /*
			       history:访问历史
				   属性:length
				   方法: go(-1)
				          back()
			   */
    function test01History(){
        //alert("历史记录的长度:"+history.length);
        //history.go(-1);//等价于点击后退
        history.back();
    }

</script>

6 document的查询

<html>
    <head>
        <title>js04document</title>
        <meta charset="utf-8"/>
        <style type="text/css">
            table{
                width:900px;
                /*border:1px solid blue;*/
                margin:10px auto;
                border-collapse:collapse;/*合并相邻单元格之间的边框*/
            }
            td{
                font-size:24px;
                padding:10px;
                border:1px solid blue;
            }
            .cla1{
                border:1px solid blue;
                color:red;
            }
            .cla2{
                background:#aaaaaa;
            }
        </style>
    </head>
    <body>  
        <div id="div1">
            <!--注释:1-->
            名字:<input type="text" name="name" id="text1"/><br/>
            年龄:<input type="text" name="age"/><br/>
            爱好:篮球<input type="checkbox" name="enjoy" value="lq"/>|
            足球<input type="checkbox" name="enjoy" value="zq"/>|
            排球<input type="checkbox" name="enjoy" value="pq"/>|
            台球<input type="checkbox" name="enjoy" value="tq"/><br/>
            省份:<select name="province">
            <option value="hn">河南</option>
            <option value="hb">河北</option>
            <option value="nm">内蒙</option>
            <option value="xj">新疆</option>
            </select><br/>
            <!--注释:2-->
            <span id="span1"  title="t1"><b>span1</b></span><br/>
            <span id="span2"  title="t2">span2222</span><br/>	
            <span id="span3"  title="t3" class="cla1" style="font-size:20px;">span33333333</span><br/>					
        </div>
        <input  type="button" value="测试document的获取" onclick="test01Get();"/><br/>


        <script type="text/javascript">
            /*
			   Dom解析:
			      Document接口:文档
				  Elemenet接口:标签
				  Attribute借口:属性
				  Text接口:    文本
				  Content接口:注释
				  Node接口:是以上接口的父接口

			   获取相关的方法:
				   document对象:oElement = document.getElementById(sIDValue):根据id获取一个
				   document对象:collObjects = document.getElementsByName(sNameValue):根据name属性获取一个集合
				   document对象:collObjects = object.getElementsByTagName(sTagName):根据标签名获取一个集合

				   Element对象属性:attributes  属性集合
				                 id          属性id
								 className   属性class
								 value       属性value
								 innerText   获取和设置文本内容
								 innerHTML   获取和设置内部html代码
								 parentNode  获取直接父标签
								 childNodes  只获取所有的直接子元素对象(标签+文本+注释)
								 children    只获取所有的直接子标签对象
								 style.xxxx       获取和设置标签的样式xxxx属性 

				   Attribute对象属性:name 属性名
                                      value 属性值
			   */
            function test01Get(){
                //获取<input type="text" name="name" id="text1"/>
                var otext=document.getElementById("text1");//通过id获取
                otext=document.getElementsByTagName("input")[0];//通过标签名获取
                otext=document.getElementsByName("name")[0];//通过name属性获取::只有表单属性
                //alert(otext);//[object HTMLInputElement]
                //研究完dhtml的api:标签有那些属性 一般对象就有那些属性
                //alert(otext);
                //alert(otext.value);
                otext.value="你好";

                //获取使用属性
                var attrArr=otext.attributes;
                for(var i=0;i<attrArr.length;i++){
                    //alert("属性:"+attrArr[i].name+"="+attrArr[i].value);
                }

                //获取<span id="span1"  title="t1">span1</span><br/>
                var ospan1=document.getElementById("span1");
                //alert(ospan1.title);
                ospan1.innerHTML="呵呵呵".bold().fontsize(7).fontcolor("red");
                //alert("文本内容:"+ospan1.innerText);
                //alert("内部html代码:"+ospan1.innerHTML);

                //获取其父亲标签
                //alert(ospan1.parentNode.id);

                var odiv1=document.getElementById("div1");
                //获取所有的子标签
                var childArr=odiv1.childNodes;
                childArr=odiv1.children;
                for(var i=0;i<childArr.length;i++){
                    //alert(childArr[i]);
                }

                //获取<span id="span3"  title="t3" class="cla1">span33333333</span><br/>	的样式
                var ospan3=document.getElementById("span3");
                ospan3.className="cla2";//设置class值
                alert(ospan3.className);//获取class值

                //获取和设置样式属性的值
                alert(ospan3.style.fontSize);
                ospan3.style.fontSize="30px";
                ospan3.style.color="#ff00ff";
            }

            //1 写一个页面 有个span:实时显示当前时间 和 过年倒计时
            //2 计算器的js实现完成
        </script>
    </body>
</html>

7 document的增删改

<html>
    <head>
	     <title>js04document</title>
		 <meta charset="utf-8"/>
		 <style type="text/css">
			 .cla1{
			     border:1px solid blue;
				 color:red;
			 }
			 .cla2{
			    background:#aaaaaa;
			 }
			 .cla0{
			    border:1px solid red;
				background:#aaaaaa;
			 }
			 div{
			     border:1px solid blue;
				 margin:10px auto;
				 width:1000px;
				 padding:10px;
			 }
		 </style>
	</head>
	<body>  
	     <div id="div1" class="cla0"  style="font-size:30px;color:red;font-weight:bold;">
		        <!--注释:1-->
			   名字:<input type="text" name="name" id="text1"/><br/>
			   年龄:<input type="text" name="age"/><br/>
			   爱好:篮球<input type="checkbox" name="enjoy" value="lq"/>|
				     足球<input type="checkbox" name="enjoy" value="zq"/>|
				     排球<input type="checkbox" name="enjoy" value="pq"/>|
				     台球<input type="checkbox" name="enjoy" value="tq"/><br/>
			   省份:<select name="province">
			              <option value="hn">河南</option>
						  <option value="hb">河北</option>
						  <option value="nm">内蒙</option>
						  <option value="xj">新疆</option>
			         </select><br/>
			      <!--注释:2-->
                <span id="span1"  title="t1"><b>span1</b></span><br/>
				<span id="span2"  title="t2">span2222</span><br/>	
				<span id="span3"  title="t3" class="cla1" style="font-size:20px;">span33333333</span><br/>					
		 </div>
		 <div id="div2">
		      <font color="red" class="cla1">font标签的文本内容</font> 呵呵呵
		 </div>
	     <input  type="button" value="测试document的获取" onclick="test01Get();"/><br/>
		 <input  type="button" value="测试document的添加" onclick="test02Add();"/><br/>
		 <input  type="button" value="测试document的修改" onclick="test03Update();"/><br/>
		 <input  type="button" value="测试document的删除" onclick="test04Delete();"/><br/>
		 
		 
		 <script type="text/javascript">
		       /*
			   Dom解析:
			      Document接口:文档
				  Elemenet接口:标签
				  Attribute借口:属性
				  Text接口:    文本
				  Content接口:注释
				  Node接口:是以上接口的父接口
				  
			   获取相关:
				   document对象:oElement = document.getElementById(sIDValue):根据id获取一个
				   document对象:collObjects = document.getElementsByName(sNameValue):根据name属性获取集合
				   document对象:collObjects = object.getElementsByTagName(sTagName):根据标签名获取集合
				   Elemenet对象:collObjects = object.getElementsByTagName(sTagName):根据标签名取子标签集合
				   
 				   Element对象方法:vAttrValue = object.getAttribute(sAttrName);
				   Element对象属性:attributes  属性集合
				                 id          属性id
								 className   属性class
								 value       属性value
								 innerText   获取和设置文本内容
								 innerHTML   获取和设置内部html代码
								 parentNode  获取直接父标签
								 childNodes  只获取所有的直接子元素对象(标签+文本+注释)
								 children    只获取所有的直接子标签对象
								 style.xxxx       获取和设置标签的样式xxxx属性 
								
				   Attribute对象属性:name 属性名
                                      value 属性值
									  
				添加相关:
                    Document对象的方法:oElement = document.createElement(sTag) 创建标签
                    Element对象的方法:oElement = object.appendChild(oNode)     当前标签添加子标签
					Element对象的方法:object.setAttribute(sName, vValue [, iFlags]) 添加和修改属性
                
				修改相关:
                    Element对象的方法:object.setAttribute(sName, vValue [, iFlags]) 添加和修改属性
					Element对象属性:
								 innerText   获取和设置文本内容
								 innerHTML   获取和设置内部html代码
								 style.xxxx       获取和设置标签的样式xxxx属性
				
                删除相关:
                    Elemenet对象的方法:bSuccess = object.removeAttribute(sName);删除属性
					Elemenet对象的方法:oRemove = object.removeChild(oNode); 删除子标签

 				
			   */
			   function test04Delete(){
			       //删除 <div id="div1">
				   var odiv1= document.getElementById("div1");
				   //odiv1.parentNode.removeChild(odiv1);
				   
				   //清空 <div id="div1">
				   //odiv1.innerHTML="";
				   
				   //删除属性class:<div id="div1" class="cla0">
				   //odiv1.removeAttribute("class");
				   //删除<div id="div1" class="cla0">的所有内部样式
				   odiv1.removeAttribute("style");
				   //删除指定样式:font-size:30px
				   //odiv1.style.fontSize="16px";
			   }
			   function test03Update(){
			       //更改:age+1
				   var oname=document.getElementsByName("age")[0];
				   var age=oname.value;
				   if(!age){//js中任意数据都可以作为boolean:::null NaN 0 "" undefined
				       age=0;
				   }
				   oname.value=++age;
				   
				   //更改<div id="div2">中的font标签的文本内容
				   //先获取div2
				   var odiv2= document.getElementById("div2");
				   //在获取其唯一的font子标签
				   var ofont=odiv2.getElementsByTagName("font")[0];
				   //alert(ofont.innerText);
				   ofont.innerText="新的内容";
				   
				   //更改属性:<font color="red" class="cla1">为cla0
				   //ofont.className="cla0";
				   ofont.setAttribute("class","cla0");
				   
				   //更改样式
				   odiv2.style.backgroundColor="#aa00ff";
			   }
			   function test02Add(){
			       //在 <div id="div1">中添加一个<input type="text" name="score" id="text2" class="cla0"/>
				   var odiv1= document.getElementById("div1");
				   //创建标签
				   var otext2=document.createElement("input");
				   //设置属性
				   otext2.setAttribute("type","text");
				   otext2.setAttribute("name","score");
				   otext2.setAttribute("id","text2");
				   otext2.setAttribute("class","cla0");
				   otext2.setAttribute("value","22.5");
				   //otext2.type="text";
				   //otext2.name="score";
				   //otext2.id="test2";
				   //otext2.value="11.0";
				   //otext2.className="cla0";
				   //子标签添加到父标签下
				   odiv1.appendChild(otext2);
				   
				   
				   //在<div id="div2">中添加一个按钮标签<input type="button" value="按钮1号" id="but1"/>
				   var odiv2= document.getElementById("div2");
				   odiv2.innerHTML=odiv2.innerHTML+"<BR/><input type='button' value='按钮1号' id='but1'/>";
				   
			   }
			   function test01Get(){
			        //获取<input type="text" name="name" id="text1"/>
					var otext=document.getElementById("text1");//通过id获取
					otext=document.getElementsByTagName("input")[0];//通过标签名获取
					otext=document.getElementsByName("name")[0];//通过name属性获取::只有表单属性
					//alert(otext);//[object HTMLInputElement]
					//研究完dhtml的api:标签有那些属性 一般对象就有那些属性
					//alert(otext);
					//alert(otext.value);
					otext.value="你好";
					
					//获取使用属性
					var attrArr=otext.attributes;
					for(var i=0;i<attrArr.length;i++){
					    //alert("属性:"+attrArr[i].name+"="+attrArr[i].value);
					}
					
					//获取<span id="span1"  title="t1">span1</span><br/>
					var ospan1=document.getElementById("span1");
					//alert(ospan1.title);
					ospan1.innerHTML="呵呵呵".bold().fontsize(7).fontcolor("red");
					//alert("文本内容:"+ospan1.innerText);
					//alert("内部html代码:"+ospan1.innerHTML);
					
					//获取其父亲标签
					//alert(ospan1.parentNode.id);
					
					var odiv1=document.getElementById("div1");
					//获取所有的子标签
					var childArr=odiv1.childNodes;
					childArr=odiv1.children;
					for(var i=0;i<childArr.length;i++){
					   //alert(childArr[i]);
					}
					
					//获取<span id="span3"  title="t3" class="cla1">span33333333</span><br/>	的样式
					var ospan3=document.getElementById("span3");
					ospan3.className="cla2";//设置class值
					alert(ospan3.className);//获取class值
					
					//获取和设置样式属性的值
					alert(ospan3.style.fontSize);
					ospan3.style.fontSize="30px";
					ospan3.style.color="#ff00ff";
			   }
		 </script>
	</body>
</html>

更多推荐