JavaScript系列--BOM

简介: JavaScript系列--BOM

一、概述


JS由一下几个部分组成,学习BOM要先了解一下事件DOM的基础知识

ECMAScript:脚本语言的基本语法和一些常用对象

BOM:

DOM:

1.事件


1.1DOM


文档对象模型

1.2功能


控制html文档内容


1.3代码


获取页面标签(元素)对象 Element

document.getElementById("id值"):通过元素的id


1.4操作Element对象


1.修改属性值

明确获取的对象是哪一个

查看API文档,找其中有哪些属型可以设置

2.修改标签体内容:

属型:innerHTML

<body>
<!--    <img id = "one" src="../image/2.jpeg">-->
    <h1 title="title">妻不知刘强东</h1>
    <script>
        // var img1 = document.getElementById(one);
        // alert("换图片了哦!");
        // img1.src = "../image/3.jpeg";
        var title = document.getElementById("title");
        alert("换字了");
        title.innerHTML = "哈哈哈";
    </script>
</body>


1.5事件


1.5.1概念


某些组件被执行了某些操作后,触发某些代码的执行

造句:XXX被XXX,我就XXX

我方水晶被摧毁后,我就责备对象


1.5.2如何绑定事件


直接在html标签上

<img id = "img1" src="../img/1.jpg" onclick="fun();">
<img id = "img2" src="../img/2.jpg">
<script>
    function fun(){
        alert('w c');
        alert('?');
    }
    function fun2(){
        alert('what happen?');
        alert('?');
    }
    var img1 = document.getElementById("img2");
    img1.onclick = fun2;
</script>


1.5.3综合实例


实现图片点一次切换一次

<body>
    <img id = 1 src="../img/1.jpg">
    <script>
        //1.获取图片对象
        // flag = flase;这个地方错五,没有提示看不出来怎么办?浏览器打开之后按f12进入控制台会有提示
        flag = true;
        var str = document.getElementById(1);
        str.onclick = function (){
            if (flag){
                str.src = "../img/2.jpg";
                flag = false;
            }else{
                str.src = "../img/1.jpg";
                flag = true;
            }
        }
    </script>
</body>


二、BOM对象


2.1概念


Browser object Model 浏览器对象模型 将浏览器的各个组成部分封装成对象。


2.2组成


2.2.1window :窗口对象


(1)实例


<body>
<input id = 'open' type="button" value="打开新窗口">
<input id = 'close' type="button" value="关闭新窗口">
<script>
    /*
    windows对象
        1.创建
        2.方法
            1.与弹出有关的方法
                alert() 显示一段消息和一个确认
                confirm()   显示带有确认和取消的对话框
                    点击确定返回true
                    点击取消返回false
                prompt()    显示可以提示用户输入的对话框
                    返回值:获取用户输入值
            2.与打开关闭有关的方法
                open() 打开窗口
                close()   关闭窗口,谁调用谁被关
            3.与定时器有关的方式
               setTimeout()     在指定的毫秒数后调用函数或计算表达式
                    参数 :
                        1.js代码或者方法对象
                        2.毫秒值
                    返回值:
                        唯一标识,用于取消定时器
               cleanTimeout()    取消由setTimeout()方法设置的timeout
               setInterval()       按照指定的周期来调用
               clearInterval()      取消setInterval设置的timeout
        3.属型
        获取其他的BOM对象和DOM对象
        4.特点
            windows对象不需要创建可以直接使用
            windows引用可以省略
            例如我们前面常用的alert,其实就是windows对象中的方法
     */
    var flag = confirm("下面会出现两个按钮,确认和取消");
    if (flag){
        alert("你点了确定");
    }else {
        alert("你点了取消");
    }
    var str = prompt("请输出用户名");
    alert(str);
    获得标签对象
    var ele = document.getElementById("open");
    var newWindow;
    //绑定事件
    ele.onclick = function (){
        newWindow = open("http://www.baidu.com");
    }
    var ele1 = document.getElementById("close");
    ele1.onclick = function (){
        newWindow.close();
    }
    var timeout = setTimeout(fun,2000);
    clearTimeout(timeout);
    function fun(){
        alert("boom~~~");
    }
    var interval = setInterval(fun,2000);
    clearInterval(interval);
    function fun(){
        alert("boom~~~");
    }
    window.document
</script>
</body>


(2)轮播图实例和小bug


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <img id = "img1" src="../img/g1.jpeg" width="100%">
    <script>
        /*轮播图思路
        1.写更改图片的方法
        2.调用更改图片的方法
        3.每3秒
         */
            var num = 1;
            function fun(){
                num ++;
                if (num > 3){
                    num = 1;
                }
                var img = document.getElementById("img1");
                //小bug
                // Uncaught TypeError: Cannot set property 'src' of null
                //原因是document.getElementById("img1")没有获取到元素对象
                img.src = "../img/g"+num+".jpeg";
            }
            setInterval(fun,2000);
    </script>
</body>
</html>


2.2.2Navigator 浏览器对象


不常用


2.2.3screen 显示器屏幕对象


不常用


2.2.4History 历史记录对象


(1)创建(获取)


window.history

history


(2)方法


back()        加载history列表中的前一个URL。forward()  加载history 列表中的下一个URL。go() 加载hisItory 列表中的某个具体页面。

参数:

正数:前进几个历史记录

负数:后退几个历史记录

相当于集成了back和forwork方法


(3)属性


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


(4)实例


<body>
<!--<input id = "forword" type="button" value="前进">-->
<input id = "f" type="button" value="前进">
<a href="轮播图案列.html">后退实例</a>
<script>
    // var f = document.getElementById("forword");
    // f.onclick = function (){
    //     history.forward();
    // }
    var f1 = document.getElementById("f");
    f1.onclick = function (){
        history.go(1);
    }
    // var b = document.getElementById("back");
    // f.onclick = function (){
    //     history.back();
    // }
</script>
</body>


2.2.5Location 地址栏对象


(1)创建


  • window.location
  • location


(2)方法


reload() 重新加载当前文档。刷新


(3)自动跳转实例


<style>
    /*
    div这个标签是用来划分区域的,它是个块级元素block
    span标签是个行内元素(行内元素就是在浏览器的一行上)比如span里面的元素不会换到下一行
     */
    p{
        text-align: center;
    }
    span{
        color: #ff0000;
    }
</style>
<body>
    <p>
        <span id = "time">5</span>秒之后,自动跳转到首页
    </p>
<script>
    /*
    分析:
    1.显示页面效果<p>
    2.倒计时读秒效果实现
        2.1定义一个方法,获取span标签,修改span标签体内容,时间--
        2.2定义一个定时器,1秒执行一次该方法
    3.在方法中判断时间如果<= 0,则跳转到首页
     */
    var second = 5;
    function fun(){
        second --;
        if (second <= 0){
            location.href = "http://www.qq.com"
        }
        var time = document.getElementById("time");
        time.innerHTML = second + "";
    }
    setInterval(fun,1000);
</script>
</body>

相关文章
|
2月前
|
缓存 JavaScript UED
js中BOM中的方法
【10月更文挑战第31天】
|
4月前
|
XML 移动开发 JavaScript
js中BOM和DOM总结(基础篇)
文章总结了JavaScript的BOM和DOM知识点,包括window、screen、location、history、navigator对象,以及消息框、计时器和cookie。同时,介绍了DOM的概念、节点获取和修改方法,以及事件处理。
js中BOM和DOM总结(基础篇)
|
8月前
|
JavaScript 前端开发
javascript操作BOM的方法
javascript操作BOM的方法
62 0
|
3月前
|
JavaScript 前端开发 Java
【前端基础篇】JavaScript之BOM介绍
【前端基础篇】JavaScript之BOM介绍
51 0
|
4月前
|
JavaScript 前端开发 API
Javaweb之javascript的BOM对象的详细解析
BOM为Web开发提供了强大的API,允许开发者与浏览器进行深入的交互。合理使用BOM中的对象和方法,可以极大地增强Web应用的功能性和用户体验。需要注意的是,BOM的某些特征可能会在不同浏览器中表现不一致,因此在开发过程中需要进行仔细的测试和兼容性处理。通过掌握BOM,开发者能够制作出更丰富、更动态、更交互性的JavaWeb应用。
46 1
|
5月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
166 1
|
5月前
|
JavaScript 前端开发
js bom的概念
js bom的概念
43 1
|
5月前
|
JavaScript 前端开发
JavaScript BOM 的概念(浏览器对象模型)
JavaScript BOM 的概念(浏览器对象模型)
64 1
|
5月前
|
存储 JavaScript 前端开发
JavaScript中的BOM
JavaScript中的BOM
|
7月前
|
JavaScript 前端开发 API
JavaScript基础-BOM与窗口交互
【6月更文挑战第12天】本文介绍了BOM(浏览器对象模型),它是JavaScript与浏览器交互的API。核心对象包括顶级对象window、document、location、navigator和history。常见问题涉及window全局作用域、location.href编码、history使用和navigator.userAgent检测。提供了代码示例,如设置页面标题、页面跳转及利用history实现无刷新跳转。掌握BOM基础和最佳实践对前端开发至关重要。
53 5