1.概念

  1. BOM: Browser Object Model,浏览器对象模型,将浏览器的各个组成部分装成对象

  2. 组成

window:窗口对象

Navigator:浏览器对象

Screen:显示器屏幕对象

History:历史记录对象

Location:地址栏对象

2.Window:窗口对象

1.为了便于对浏览器的操作,javascript封装了对浏览器的各个对象使得开发者可以方便的操作浏览器。

Window 对象是 JavaScript 层级中的顶层对象。

Window 对象代表一个浏览器窗口或一个框架。

Window 对象会在 <body> 或 <frameset> 每次出现时被自动创建

2.与弹出框有关的方法:

  • alert()

  • confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。

  • prompt() 显示可提示用户输入的对话框。

返回值:获取用户输入的值

3.与打开或关闭有关的方法

  • open() 打开一个新的窗口,返回新的window对象

//隐藏地址栏与工具栏location = no,toolbal = no
//_self当前页面,_blank,新页面
window.open("new_file.html", "_blank", "location = no,toolbal = no");
  • close() 关闭浏览器窗口,谁调用,就关谁

  • resizeTo() 将窗口的大小更改为指定的宽度和高度值

  • moveTO() 将窗口左上角的屏幕位置移动到指定的 x 和 y 位置。

  • moveBy() 相对于原来的窗口移动指定的x、y值。

4.与定时器有关的方法:

  • setInterval() 每经过指定毫秒值后就会执行指定的代码,有返回值。

  • clearInterval() 根据一个任务的ID取消的定时任务。

  • setTimeout() 经过指定毫秒值后执行指定 的代码一次。

使用window对象的任何属性与方法都可以省略window对象不写的。但不建议省略

// 定时器返回值是当前的id  可以根据id来清除定时器
        var id = window.setInterval("Testopen()",3000);
        function TestclearInterval(){
            window.clearInterval(id);
        }

3.常用的事件

1.鼠标点击相关:

onclick 在用户用鼠标左键单击对象时触发。

ondblclick 当用户双击对象时触发。

onmousedown 当用户用任何鼠标按钮单击对象时触发。

onmouseup 当用户在鼠标位于对象之上时释放鼠标按钮时触发。

2.鼠标移动相关:

onmouseout 当用户将鼠标指针移出对象边界时触发。

onmousemove 当用户将鼠标划过对象时触发。

 

3.焦点相关的:

onblur 在对象失去输入焦点时触发。

onfocus 当对象获得焦点时触发。

4.其他:

onchange 当对象或选中区的内容改变时触发。

onload 在浏览器完成对象的装载后立即触发。

onsubmit 当表单将要被提交时触发。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>常用的事件</title>
    </head>
    <body onload="showPage()">
        <input type="button" value="单击" onclick="Testonclick()" />
​
        <input type="button" value="双击" ondblclick="Testondblclick()" />
​
        <input type="button" value="按下鼠标" onmousedown="Testonmousedown()" />
​
        <input type="button" value="释放鼠标" onmouseup="Testonmouseup()" />
​
        <input type="button" value="显示时间" onmousemove="Testonmousemove()" onmouseout="Testonmouseout()" />
        <span id="time"></span>
​
        <hr>
​
        用户名:<input type="text" id="username" name="username" onfocus="Testonfocus()" onblur="Testonblur()" />
        <span id="user"></span>
        密码:<input type="password" name="password" />
​
        <select onchange="Testonchange()">
            <option>上海</option>
            <option>北京</option>
            <option>深圳</option>
        </select>
​
        <form action="new_file.html" onsubmit="Testonsubmit()">
            <input type="submit" />
        </form>
        <script type="text/javascript">
            function Testonclick() {
                alert("鼠标单击");
            }
​
            function Testondblclick() {
                alert("鼠标双击");
            }
​
            function Testonmousedown() {
                alert("鼠标按下");
            }
​
            function Testonmouseup() {
                alert("鼠标松开");
            }
​
            var spanNode = document.getElementById("time");
​
            function Testonmouseout() {
                var date = new Date();
                //无日期,只有时间
                spanNode.innerHTML = "鼠标出去了" + date.toLocaleTimeString();
            }
​
            function Testonmousemove() {
                var date = new Date();
                //显示日期+时间
                spanNode.innerHTML = "鼠标进来了" + date.toLocaleString();
            }
            var userSpan = document.getElementById("user");
​
            function Testonfocus() {
                userSpan.innerHTML = "请输入用户名,不能小于6位".fontcolor("yellow");
            }
​
            function Testonblur() {
                userSpan.innerHTML = "非常棒,格式正确".fontcolor("green");
            }
​
            function Testonchange() {
                alert("内容改变了");
            }
​
            function Testonsubmit() {
                alert("提交内容");
            }
​
            function showPage() {
                window.open("new_file.html", "_blank", "location=no,toolbar=no");
            }
        </script>
    </body>
</html>

4.location:地址栏对象

  1. 创建(获取):

    1. window.location

    2. location

  2. 方法

    1. href属性设置或获取整个URL为字符串

    2. reload() 重新装入当前页面,即刷新

<body>
        <input type="button" value="新浪网" onclick="writeSina()" />
​
        <input type="button" value="刷新" onclick="refresh()" />
    </body>
    <script type = "text/javascript">
        document.write("<br />");
        document.write(location.href + "<br />");//http://127.0.0.1:8848/testBOM/test3.html
        document.write(location.host + "<br />");//127.0.0.1:8848
        document.write(location.hostname + "<br />");//127.0.0.1
        document.write(location.port + "<br />");//8848
        document.write(location.protocol + "<br />");//http:
        //英 /ˈprəʊtəkɒl/    n. 协议;草案;礼仪
        
        function writeSina(){
            location.href = "http://www.sina.com";
        }
        function refresh(){
            location.reload();
        }
    </script>

5.Screen:屏幕对象

availHeight 获取系统屏幕的工作区域高度,排除 Windows 任务栏。 availWidth 获取系统屏幕的工作区域宽度,排除 Windows 任务栏。 height 获取屏幕的垂直分辨率。 width 获取屏幕的水平分辨率。

<script type = "text/javascript">
    document.write("获取系统屏幕的工作区域高度,不含任务栏:" + screen.availHeight + "<br />");
    document.write("获取系统屏幕的工作区域宽度:" + screen.availWidth + "<br/>");
    document.write("获取屏幕的垂直分辨率,包含任务栏:" + screen.height + "<br/>");
    document.write("获取屏幕的水平分辨率:" + screen.width + "<br/>");
</script>

6.History: 历史记录对象

1.创建(获取):

1.window.history

2.history

2.方法:

back() 加载 history 列表中的前一个 URL。

forward() 加载 history 列表中的下一个 URL。

go(参数) 加载 history 列表中的某个具体页面。

参数:

正数:前进几个历史记录

负数:后退几个历史记录

  1. 属性:

  • length 返回当前窗口历史列表中的 URL 数量。

随机点餐

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>随机点餐</title>
    </head>
    <!-- onload,加载完就直接执行的方法 -->
    <body onload="getFood()">
        <center>
            <span id="food"></span>
            <hr />
            <input type="button" style="font-size: 50px;" value="暂停" onclick="stop()" />
            <input type="button" style="font-size: 50px;" value="继续" onclick="start()" />
        </center>
        <script type="text/javascript">
            function getFood(){
                var foods = ["大盘鸡","炒年糕","烤包子","烤全羊","兰州拉面","黄焖鸡","小鸡炖蘑菇"];
                var index = parseInt(Math.random()*foods.length);
                var spanNode = document.getElementById("food");
                spanNode.style.backgroundColor = "yellow";
                spanNode.style.fontSize = "120px";
                spanNode.style.color = "red";
                spanNode.innerHTML = foods[index];
            }
            var id = window.setInterval("getFood()",100);
            function stop(){
                window.clearInterval(id);
            }
            function start(){
                //这里不能设置定时器,因为原来的定时器已被杀死,再次启动的是新的,将无法清除此定时器,即不能停止
                //window.setInterval("getFood()",100);
                location.reload();
            }
        </script>
    </body>
</html>
​

每日问题:

1.dom和bom的区别
    dom是指当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)
    bom  BOM是browser object model的缩写,简bai称浏览器对象模型

2.设置定时器方法以及参数 
    setInterval('调用函数',毫秒时间):每间隔固定毫秒值就执行一次函数
    setTimeout('调用函数',毫秒时间):在固定时间之后执行一次调用函数
3.清除定时器方法以及参数 
    clearInterval(定时器名称)
    clearTimeout(定时器名称)

4.单击事件
    onclick:点击事件
5.获得焦点事件
    onfocus:失去焦点
6.失去焦点事件
    onblur:失去焦点
7.页面加载完毕事件
    window.οnlοad=function(){ 
        alert("页面加载完成!"); 
    } 
8.表单提交事件
    onsubmi:当submit按钮提交表单时触发
9.内容发生改变事件
    onchange:当容发生改变时
10.location的href属性作用
    可以获取当前窗口的url
    让当前窗口加载对应url

11.刷新的方法
    location.reload()
 

posted on 2020-09-17 22:21  zitian246  阅读(51)  评论(0编辑  收藏  举报