DOM入门学习笔记


1.说明

     DOM就是使用js操控界面的空间
     js和DOM,就像C#语法和.netFramework的关系
     js可以定义变量,定义函数,但是说和用户进行交互,还是用DOM实现,就像alert(),也是有定义DOM中的
     DOM可以让我们程序员操纵html上的动态交互,比如:点击按钮

2.DOM入门
     DOM就是HTML页面的模型,将每一个标签作为一个对象,js通过调用DOM中的属性,方法就可以对页面中的文本框,层等元素进行编程控制,比如通过操作文本框的DOM对象,就可以读取文本框中的值,设置文本框中的值.
     JavaScript->Dom 就是 C#->.Net Framework
     Dom也想winForm一样,通过事件.属性,方法进行编程
     css+js+Dom = DHTML(动态页面)

3.事件
     事件 ,直接在body部分,点击body部分就会弹出对话框
      < body   onmousedown ="alert('点我了')">
      </ body >
     另一种使用方式
      < head >
          < title ></   title >
         < script   type ="text/javascript">
             function   bodymousedown() {
            alert(   '点我了!' );
            alert(   '地方' );
            }
         </ script >
      </ head >
      < body   onmousedown ="bodymousedown()">
      </ body >

4.动态设置事件
     可以再代码中动态设置事件响应函数,就像.net中btn.Click+=一样
      function   f1() {
            alert(   '我是f1' );
        }
          function   f2() {
            alert(   '我是f2' );
        }
     ...............
      < input   type ="button"   onclick ="document.οnclick=f1"   value ="关联事件1"   />
      < input   type ="button"   onclick ="document.οnclick=f2"   value ="关联事件2"   />

5.window对象1 -------- confirm
     window对象道标当前浏览器窗口, 使用window对象的属性,方法的时候可以省略window,比如window.alert('a') 可以省略成alert('a')
     (1)alert()方法,弹出信息对话框
     (2)confirm方法,显示"确定","取消"对话框,如果按了【确定】按钮,就返回true,否则就false程序如下:    一般删除操作,询问客户时候决定执行
        < script   type ="text/javascript"   >
          function   confirmdemo() {
              if   (confirm( "是否进入?"   )) {
                alert(   "进入了"   );
            }
              else {
                alert(   "取消进入"   );
            }
        }
      </ script >
     .....................
      < input   type ="button"   value ="confirmtest"   onclick ="confirmdemo()"   />

6.window对象2 ----------  navigate, setInterval, clearinterval
    (3) 重新导航到指定的地址: navigate("http://www.baidu.com")  注意: 这个只是在IE里可以运行.在FireFox里运行不了
      < input   type ="button"   value ="navigatetest"   onclick ="navigate('DOM1.htm')"/>
    (4)setInterval, 每个一段时间执行指定代码,类似winform的timer(), 
          (返回值为定时器的标志,取消定时操作时会用到)setInterval(代码字符串,间隔时间单位ms)
           var   intervalId;
           function   setIntervaldemo() {
                  intervalId =  setInterval(   "alert('hello')" , 5000);   //注意被执行的代码是字符串格式,也可以写一个匿名函数
        }
     .................................
           < input   type ="button"   value ="setInterval测试"   onclick   ="setIntervaldemo()"   />
     (5)clearInterval 取消setInterval的定时执行
           < input   type ="button"   value ="停止Interval"   onclick   ="clearInterval(intervalId)"   />

7.window对象3
     (6)setTimeout也是执行定时执行,但是不像setInterval那样重复定时执行 ,只执行一次,clearTimeout也是消除定时,很好区分
          var   timeoutId = setTimeout( "alert('你好a')"   , 10000);
     ......
           < input   type ="button"   value ="停止Timeout"   onclick   ="clearTimeout(timeoutId)"   />

8.window对象3
     案例:实现标题栏走马灯效果,也就是浏览器的标题文字每隔500ms向右滚动一下.标题为document.title属性,实现代码
     点击[向左]按钮就向左连续滚动,点击[向右]按钮就向右连续滚动

js的substring语法

stringObject.substring(start,stop)
start必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
stop

可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。

如果省略该参数,那么返回的子串会一直到字符串的结尾。

     程序:
  
  <head>
    <title> 新学期迎接新同学 </title>
    <script type="text/javascript">
        var leftId;  //标志做滚动定时器标记
        var rigthId;  //标志做滚动定时器标记
        function scrollLeft() { //左滚动一个字
            var title = document.title;
            var firstch = title.charAt(0); //第一个字
            var leftstr = title.substring(1, title.length);  //剩下的字
            document.title = leftstr + firstch; //连接起来
        }
        function scrollRight() { //右滚动一个字
            var title = document.title;
            var firstch = title.charAt(title.length-1); //最后一个字
            var leftstr = title.substring(0, title.length-1); //前面的字
            document.title = firstch + leftstr; //连接起来
        }
        function clearsroll() {  //取消所有定时器,即取消所有滚动
            if (leftId != 'undefined' ) {
                clearInterval(leftId);
            }
            if (rigthId != 'undefined' ) {
                clearInterval(rigthId);
            }
        }
        function scrollLeftStart() {
            clearsroll()
            leftId = setInterval( "scrollLeft()", 500);
        }
        function scrollRightStart() {
            clearsroll()
            rigthId = setInterval( "scrollRight()", 500);
        }
    </script>
</head>
<body>
<input type="button" value="向左" οnclick="scrollLeftStart()" />
<input type="button" value="向右" οnclick="scrollRightStart()" />
</body>



9.body,document对象的事件
     (1)onload:网页加载完毕时触发,浏览器是 一边下载文档,一边解析执行,可能会出现js执行时需要操作的某个元素,这个元素还没加载,如果这样就要把操作代码放到 body的onload事件中,或者可以吧js放到元素之后,元素的onload时间是自己加载完毕时触发,body onload才是全部加载完成
      < body   onload ="btn.value='OK'">
           < input   id ="btn"   type ="button"     />
      </ body >
     (2)onunload:网页关闭(或者离开)后触发. 后退,刷新,重加载,关闭都会触发
     
     (3)onbeforeunload:在网页准备关闭(或离开)后触发
     在时间中为"window.event.returnValue"赋值(要显示的警告信息),这样窗口离开(比如前进,后退,关闭)就会弹出确认消息
      < body   onload ="btn.value='OK';"   onunload ="alert('大爷慢走啊!');"   onbeforeunload ="window.event.returnValue='文章会被丢失'">
      < input   type ="button"   value ="模式对话框"   onclick   ="showModelessDialog('DOM1.htm')"   />
      </ body >
     
10.其他事件
     除了特有的属性之外,当然还有通用的HTML元素的事件:onclick(单击),ondbllick(双击),onkeydown(按键按下),onkeypress(点击按键),onkeyup(按键释放),onmousedown(鼠标按下),onmousemove(鼠标移动),onmouseout(鼠标离开元素范围),onmouseover(鼠标移动到元素范围),onmouseup(鼠标按键释放)等

11.window对象的属性1
     window.location.href 重新导向新的地址,和navigate方法效果一样,window.location.reload()刷新页面
     <  body   onunload  ="alert('您刷新了')">
           <  input   type  ="button"    value  ="href"   onclick  ="alert(location.href)"   />
           <  input   type  ="button"    value  ="重定向"   onclick   ="location.href='DOM1.htm'"   />
           <  input   type  ="button"    value  ="刷新"   onclick  ="location.reload()"   />
      </  body >
     
      window.event是非常重要的属性,用来获得发生事件时的信息,事件不局限于window对象的事件,所有元素的事件都可以通过event属性取到相关信息.类似于winform的e(EventArg)
     •altKey属性,bool属性,表示发生事件时alt键是否被按下,类似的还有ctrlKey,shiftKey,例子:
      <  input   type  ="button"    value  ="点击"   onclick  ="if(event.ctrlKey){alert('按下了ctrl健')}else{alert('普通点击')}"   />
     •clientX,clientY发生事件时鼠标在客户区的坐标; screenX, screenY,发生事件时鼠标在屏幕上的坐标; offsetX,offsetY,发生事件时鼠标相对于事件源(比如点击按钮时触发onclick)的坐标.
      •returnValue属性,如果将returnValue设置为false,就会取消默认事件的处理.在超链接的onclick里面禁止访问href的页面,在表单
     •scrElement,获得事件源对象
     •keyCode,发生时间时的按键值
     •button,发生时间时鼠标按键,1为左键,2为右键,3为左右两键同时按
      <  input   type  ="button"    value  ="禁止点击右键"   onmousedown   ="if(event.button == 2){alert('请不要用右键点击')}"   />

12.window对象的属性2
     •clipboardData对象,对黏贴板的操作.clearData("Text")清空粘贴板, .getData("Text")得到粘贴板的信息,返回值为粘贴板中的内容;  .setData("Text".val),设置粘贴板中的值
     案例:复制地址给好友
      <  input   type  ="button"   value  ="分享给好友"   onclick   ="clipboardData.setData('Text','我发现一个好玩的网站,很黄很暴力!'+location.href);alert('已经粘贴成功!');"   />









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值