JavaScript(二)

====================================BOM=====================================
1.描述与浏览器进行交互的方法和接口
2.包括:
    a.弹出新的浏览器窗口
    b.移动、关闭浏览器窗口及调节浏览器窗口大小
    c.获取用户屏幕分辨率的屏幕对象
    d.WEB浏览器详细的定位对象
3.对象:Window、Navigator、Screen、History、Location(当前页面的URL信息)

window对象
    1.方法
        a.alert(),confirm(),prompt()
        b.open()
        c.close()
        d.setInterval    定时器
        e.clearInterval    清除定时器
        f.setTimeout    延迟
        g.clearTimeout    清除延迟
范例:window对象

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <a href="javascript:myOpen();">新窗口</a>
 9     <script type="text/javascript">
10         // window.open('index.html', '_self', '');
11         function myOpen(){
12             /* window.open("弹出窗口的url","窗口名称","窗口特征") */
13             window.open('index.html', '_blank', 'width=200,height=200');
14         }
15         
16         // myOpen();
17 
18         //延迟执行
19         // setTimeout(myOpen,1000);
20 
21         //定时执行,每2000毫秒就弹出新窗口
22         // setInterval(myOpen,2000);
23     </script>
24 </body>
25 </html>     

 
    2.事件
    onload:页面加载
    onclick:点击
    onfocus:焦点获取
    onblue:焦点失去
    onmouseover:鼠标进入到元素中
    onmouseout:鼠标移出元素外
    onchange:内容改变
screen对象
范例:screen对象

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <script type="text/javascript">
 9         
10     alert(window.screen.width);
11     alert(window.screen.height);
12 
13     // 去掉任务栏,即屏幕工作区
14     alert(window.screen.availWidth);
15     alert(window.screen.availHeight);
16 
17     </script>
18 </body>
19 </html>        


location对象
    1.属性
        host:当前URL地址的主机号和端口号
        hostname:当前URL的主机名
        href:获取或设置当前的URL地址
    2.方法
        reload():重新加载当前页面
范例:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <input type="button"  value="刷新" onclick="window.location.reload()"></input>
 9     <input type="button"  value="显示地址" onclick="alert(window.location)"></input>
10     /* 服务器打开,才会有主机和主机名 */
11     <input type="button"  value="获取主机" onclick="alert(window.location.host)"></input>
12     <input type="button" value="获取主机名" onclick="alert(window.location.hostname)"></input>
13     <script type="text/javascript">
14         alert(window.location.href);
15     </script>
16 </body>
17 </html>


history对象
    1.属性
        length:历史列表中的元素数目
    2.方法
        back:前一个URL
        forward:下一个URL
        go(n):n>0,历史列表往前数第n个页面;n<0,历史列表往后数第n个页面;n=0,当前页面
范例:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <a href="location.html">location对象</a>
 9     <a href="screen.html">screend对象</a>
10     <a href="javascript:window.history.forward();">前进</a>
11     <a href="javascript:window.history.go(1);">前进</a>
12 </body>
13 </html>


====================================★DOM★=====================================
1.描述处理网页内容的方法和接口
2.HTML和XML的应用程序接口(API)
3.整个页面规划为层级式的节点结构
    
1.属性:
    referrer:获取将用户引入当前页面的位置URL
    URL
2.方法:
    write():打印/输出
    getElementById():id选择器
    getElementsByName():复选框
    getElementsByTagName():指定标签
    
Doms元素的操作
1.获取或设置dom元素中样式
    var val = dom元素.style.样式属性;    //获取值
    dom元素.style.样式属性 = 值;        //设置值
2.获取或设置表单元素的值
    var val = dom元素.value;    //获取值
    dom元素.value = 值;        //设置值
3.获取或设置dom元素的内容
    var val = dom元素.innerHTML;    //获取值
    dom元素.innerHTML = 值;        //设置值
    
范例:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <h1>兑奖页面</h1>
 9     <script type="text/javascript">
10         if (document.referrer) {
11             // statement
12             alert("欢迎来兑奖");
13         } else {
14             // statement
15             alert("请从指定的页面跳转");
16             /* 服务器打开,才会跳转 */
17             window.location = "window.html";
18         }
19     </script>
20 </body>
21 </html>    

   
范例:复选框

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <table>
 9         <thead>
10             <tr>
11                 <th><input id="check-all" type="checkbox" onclick="selectAll();">全选</input></th>
12             </tr>
13         </thead>
14         <tbody>
15             <tr>
16                 <td><input type="checkbox" checked="checked" name="hobby" value="travel">旅游</input></td>
17             </tr>
18             <tr>
19                 <td><input type="checkbox" name="hobby" value="swim">游泳</input></td>
20             </tr>
21             <tr>
22                 <td><input type="checkbox" name="hobby" value="climb">登山</input></td>
23             </tr>
24         </tbody>
25     </table>
26 
27     <script type="text/javascript">
28         function selectAll () {
29              // 获取全选的复选框
30              var checkAll = document.getElementById("check-all");
31              var checkItems = document.getElementsByName("hobby");
32 
33              //循环设置每一个复选框的状态
34              for (var i = 0; i < checkItems.length; i++) {
35                  /* 全选和反选 */
36                  checkItems[i].checked = checkAll.checked;
37 
38                  /* 只能全选 */
39                  // checkItems[i].checked = true;
40              }
41         }
42     </script>
43 </body>
44 </html>    

  
范例:动态时间

 1 <!DOCTYPE html>
 2 <html>
 3 <meta charset="UTF-8">
 4 <head>
 5     <title>时间格式</title>
 6 </head>
 7 <body>
 8     <span id="currTime"></span>
 9     <script type="text/javascript">
10         var weeks = ['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
11         
12         function getCurrTime () {
13              // body...  
14             var date = new Date();
15             var year = date.getFullYear();
16             var month = date.getMonth() + 1;    /* 月份值:0-11 */
17             var day = date.getDate();    /* 日期 */
18             var hour = date.getHours();
19             var mi = date .getMinutes();
20             var sec = date.getSeconds();
21             var week = date.getDay();    /* 星期 */
22 
23             /* 显示两位数 */
24             month = month > 9 ? month : '0' + month;
25             day = day > 9 ? day : '0' + day;
26             hour = hour > 9 ? hour : '0' + hour;
27             mi = mi > 9 ? mi : '0' + mi;
28             sec = sec > 9 ? sec : '0' + sec;
29 
30             return year + '年' + month + '月' + day + '日' + hour + ':' + mi + ':' + sec + '' + weeks[week];
31         }
32         
33         function setCurrTime () {
34              // body...  
35              /* 没有value属性的就用这个赋值--innerHTML,        
36                 返回或设置id="currTime"的div开始和结束之间的HTML
37              */
38              document.getElementById("currTime").innerHTML = getCurrTime();
39         }
40         window.setInterval(setCurrTime, 1000);
41     </script>
42 </body>
43 </html>    

   
范例:表单验证

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <form action="#" method="post" onsubmit="return formValid();">
 9         <div>
10             <label for="username">用户名</label>
11             <input type="text" name="name" id="username" placeholder="请输入用户名" autocomplete="off" />
12         </div>
13         <div>111</div>
14 
15         <div>
16             <label for="userPass">设置密码</label>
17             <input type="password" name="userPass" id="userPass" placeholder="请设置密码" >
18         </div>
19         <div>111</div>
20 
21         <div>
22             <label for="userRePass">确认密码</label>
23             <input type="password" name="userRePass" id="userRePass" placeholder="请确认密码" >
24         </div>
25         <div>111</div>
26 
27         <div>
28             <label for="phone">中国 + 86</label>
29             <input type="text" name="phone" id="phone" placeholder="请输入手机号" autocomplete="off" />
30         </div>
31         <div>111</div>
32         
33         <div>
34             <label for="textarea"></label>
35             <textarea cols="40" rows="8" name="textarea" id="textarea">
36                 
37             </textarea>
38         </div>
39         
40         <div>
41             <label for="checkbox"></label>
42             <input type="checkbox" name="checkbox" id="checkbox" />我已阅读协议
43         </div>
44     
45         <div>
46             <input type="submit" value="立即注册" />
47         </div>
48     </form>
49 
50     <script type="text/javascript">
51         function btnClick () {
52              // body...  
53              var checked = document.getElementById('checkbox').checked;
54              if(!checked){
55                  alert('请仔细阅读协议');
56              }
57              return checked;
58         }
59 
60         function nameValid () {
61              // body...  
62              var value = document.getElementById('username').value;
63              // 正则表达式
64              var regExp = /^w{5,11}$/;
65              var result = value.match(regexp);
66              return result != null;
67         }
68 
69         function passValid () {
70              // body...  
71              var value = document.getElementById('userPass').value;
72              var regExp = /^.{6,12}$/;
73              var result = value.match(regexp);
74              return result != null;
75         }
76 
77         function formValid () {
78              // body...  
79              return btnClick() && nameValid() && passValid();
80         }
81     </script>
82 </body>
83 </html>    

 
范例:表单效果

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <input type="text" placeholder="邮箱/QQ/手机" onfocus="inputFocus(this)" onblur="inputBlur(this)" onkeyup="inputChange(this)"></input>
 9 
10     <span id="msg"></span>
11     
12     <script type="text/javascript">
13         function inputFocus (input) {
14              // body...  
15              input.className = 'focus';
16         }
17 
18         function inputBlur (input) {
19              // body...  
20              input.className = '';
21              //验证
22              if (input.value == '') {
23                  // statement
24                  document.getElementById('msg').innerHTML = '账号不能为空';
25              } else {
26                  // statement
27                  document.getElementById('msg').innerHTML = '';
28              }
29         }
30 
31         function inputChange (input) {
32              // body...  
33              if (input.value.length < 6) {
34                  // statement
35                  document.getElementById('msg').innerHTML = '账号长度不能小于6位';
36              } else {
37                  // statement
38                  document.getElementById('msg').innerHTML = '账号正确';
39              }
40         }
41 
42     </script>
43 </body>
44 </html>


    
    
    
    
    
    
    
    
    
   

原文地址:https://www.cnblogs.com/ivy-xu/p/5547670.html