Html—JavaScript(三)

JavaScript

1.事件

1.1 常用事件类型

onload:当页面或图像加载完后立即触发

onblur:元素失去焦点

onfocus:元素获得焦点

onclick:单击

onchange:改变内容

onmouseover:鼠标移动到

onmouseout:鼠标离开

onkeyup:键盘按键抬起

onkeydown:键盘按键按下

1.2事件流和事件模型

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>JavaScript</title>
    </head>
    <body>
        <div id="myDiv">Click me</div>
    </body>
</html>
  • 事件捕获
    document–>html–>body–>div
  • 事件冒泡
    div–>body–>html–>document

1.3事件处理程序

1.3.1HTML事件处理程序
<button type="button" onclick="alert('HTML 事件处理程序  处理程序')">HTML 事件处理程序</button>
1.3.2DOM0级事件处理程序

注意:若写了两个一样的点击事件,那个只有第一个有效,但是一般不能这么写。

<button type="button" id="lbw">DOM0级按钮</button>
<script type="text/javascript">
    var lbw=document.getElementById("lbw");
    lbw.onclick=function(){
        console.log("我是卢本伟");
    }
    
    lbw.onclick=function(){
        console.log("我是五五开");
    }
</script>
1.3.3DOM2级事件处理程序

注意:若写了两个一样的点击事件,那么这两个点击事件都会有效,并且按着程序的先后进行执行。

<button type="button" id="pdd">DOM2级   按钮</button>
<button type="button" id="sc">删除事件监听 按钮</button>
<script type="text/javascript">
    var pdd=document.getElementById("pdd");
    pdd.addEventListener('click',function(){
        console.log("我是骚弟弟");
    });

    function fn(){
        console.log("我是猪");
    }
    pdd.addEventListener('click',fn);

    var sc=document.getElementById("sc");
    sc.onclick=function(){
        pdd.removeEventListener('click',fn);
    }
</script>

2.BOM对象

2.1window对象的方法

2.1.1对话框

(1)消息框:alter()
(2)输入框:prompt () 返回值为输入框中的内容
​ 参数:第一个参数:输入框中应该要输入的内容
​ 第二个参数:往输入框中输入默认的文本
(3)确认框:confirm 返回值为true或flase

<button type="button" onclick="fun1()">alert 消息框</button>
<button type="button" onclick="fun2()">prompt 输入框</button>
<button type="button" onclick="fun3()">confirm 确认框</button>
<script type="text/javascript">
    function fun1(){
        alert("alter消息框");
    }

    function fun2(){
        var name=prompt("请输入你的VIP账户","leader");
        if(name=="admin"){
            alert("登录成功"+name+"VIP");
        }else{
            alert("普通用户登录成功"+name);
        }
    }

    function fun3(){
        var bol=confirm("确认删除吗?");
        if(bol){
            alert("删除成功");
        }else{
            alert("取消成功");
        }
    }
</script>
2.1.2浏览器窗口

1.打开窗口

<button type="button" onclick="fun1()">打开空窗口</button>
<button type="button" onclick="fun2()">打开本地资源</button>
<button type="button" onclick="fun3()">打开淘宝</button>
<button type="button" onclick="fun4()">当前窗口打开百度</button>
<script type="text/javascript">
    function fun1(){
        open();
    }

    function fun2(){
        open("01_系统弹出框.html");
    }

    function fun3(){
        open("http://www.taobao.com");
    }

    function fun4(){
        open("http://www.baidu.com","_self");
    }
</script>

2.关闭当前窗口

<button type="button" onclick="fun5()">关闭窗口</button>
<script type="text/javascript">
    function fun5(){
        window.close();
    }
</script>
2.1.3与时间相关的函数

setTimeOut()
在指定毫秒数之后执行 返回ID 方便关闭
var id = window.setTimeOut(“函数名”,毫秒数);
setInterval()
每隔指定毫秒数执行一次 返回ID 方便关闭
var id = window.setInterval(“函数名”,毫秒数);
例子:制作一个时钟

<button type="button" onclick="startTime()">开始</button>
<button type="button" onclick="closeTime()">关闭</button>

<h2 id="tm"></h2>
<script type="text/javascript">
    function start(){
        var date=new Date();
        var newDate=formatDate(date);
        if(date.getSeconds()==0){
            document.getElementById("tm").style.color="red";
            document.getElementById("tm").innerHTML = newDate;
        }else{
            document.getElementById("tm").style.color="black";
            document.getElementById("tm").innerHTML = newDate;
        }

    }
    function startTime(){
        id=setInterval(start,1000);
    }
    function closeTime(){
        window.clearInterval(id);
    }
    function formatDate(date){
        var year=date.getFullYear();
        var month=date.getMonth()+1<10?'0'+(date.getMonth()+1):(date.getMonth()+1);
        var dat=date.getDate()<10?'0'+date.getDate():date.getDate();
        var hour=date.getHours()<10?'0'+date.getHours():date.getHours();
        var min=date.getMinutes()<10?'0'+date.getMinutes():date.getMinutes();
        var secon=date.getSeconds()<10?'0'+date.getSeconds():date.getSeconds();

        var str=year+'-'+month+'-'+dat+' '+hour+':'+min+':'+secon;
        return str;
    }
</script>

3. history对象

history
属性
length 获取到历史网页的个数
方法
back() ; 后退一个页面
​ forward(); 前进一个页面
​ go(1); 数据为正数1,前进 数据为负数 后退

注意:当下一个页面已经被打开之后,才能通过这个方法去进入下一个页面

第一个页面:
<body>
    <h2>页面1</h2>
    <a href="05_history对象2.html">跳转到页面二</a>
</body>
第二个页面:
<body>
    <h2>页面2</h2>
    <a href="05_history对象3.html">跳转到页面三</a>
    <a href="javascript:window.history.forward()">前进一个</a> <!--要先打开页面三,再回到页面二的时候,这个a标签才有效-->
    <a href="javascript:window.history.back()">后退一个</a>
</body>
第三个页面:
<body>
    <h2>页面3</h2>
    <a href="javascript:window.history.back()">回退一个</a>
    <a href="javascript:window.history.go(-2)">回退二个</a>
</body>

4.location对象

location
window.location.href=; 获取当前网页的url地址
​ 方法
​ reload () 重新加载
​ replace () 替换

<h2>lcoation</h2>

<button type="button" onclick="test()">button</button>
<button type="button" onclick="test2()">刷新</button>
<button type="button" onclick="test3()">替换</button>

<script type="text/javascript">
    function test(){
        window.location.href="01_系统弹出框.html";
    }

    function test2(){
        location.reload();
    }

    function test3(){
        location.replace("http://www.taobao.com");
    }
</script>

5.DOM对象

5.1节点

注意: 操作DOM必须等节点初始化完毕之后,才能执行。
因此有两种方式处理:
(1)把 script 调用标签移到html末尾即可
(2)使用onload事件来处理JS,等待html 加载完毕再加载 onload 事件里的 JS

5.2获取节点

getElementById() 根据id获取dom对象,如果id重复,那么以第一个为准
getElementsByTagName() 根据标签名获取dom对象数组
getElementsByClassName() 根据样式名获取dom对象数组
getElementsByName() 根据name属性值获取dom对象数组,常用于多选获取值

<p id="p1" class="para">这又是一个段落</p>
		<p id="p1" class="para">这是一个段落<span>文本</span></p>
		<input type="text" class="para" name="txt" />
		<input type="checkbox" name="hobby" value="游泳" />游泳
		<input type="checkbox" name="hobby" value="篮球" />篮球
		<input type="checkbox" name="hobby" value="足球" />足球
		<pre name="pr">
			
		</pre>
		<hr />
		<a href="javascript:testById()" >按照id获取</a>
		<a href="javascript:void(0)" onclick="testByName()">按照name获取</a>
		<a href="javascript:void(0)" onclick="testByTagName()">按照标签名获取</a>
		<a href="javascript:void(0);" onclick="testByClass();">按照class获取</a>
		
		<script type="text/javascript">
			function testById(){
				var p=document.getElementById("p1");
				console.log(p);
			}
			
			function testByName(){
				var check=document.getElementsByName("hobby");
				console.log(check);
			}
			
			function testByTagName(){
				var inp=document.getElementsByTagName("a");
				console.log(inp);
			}
			
			function testByClass(){
				var pi=document.getElementsByClassName("para");
				console.log(pi);
			}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值