JS的WebAPI

2023-09-19 00:01:59

WebAPI背景知识

什么是 WebAPI

前面学习的 JS 分成三个大的部分
ECMAScript: 基础语法部分
DOM API: 操作页面结构
BOM API: 操作浏览器
WebAPI 就包含了 DOM + BOM.

什么是 API

API 是一个更广义的概念. 而 WebAPI 是一个更具体的概念, 特指 DOM+BOM,所谓的 API 本质上就是一些现成的函数/对象, 让程序猿拿来就用, 方便开发.

DOM 基本概念

什么是 DOM

DOM 全称为 Document Object Model.
W3C 标准给我们提供了一系列的函数, 让我们可以操作:
网页内容
网页结构
网页样式

DOM 树

一个页面的结构是一个树形结构, 称为 DOM 树
页面结构如下
在这里插入图片描述
在这里插入图片描述
重要概念:
文档: 一个页面就是一个 文档, 使用 document 表示.
元素: 页面中所有的标签都称为 元素. 使用 element 表示.
节点: 网页中所有的内容都可以称为 节点(标签节点, 注释节点, 文本节点, 属性节点等). 使用 node
表示.
这些文档等概念在 JS 代码中就对应一个个的对象.
所以才叫 “文档对象模型” .

getElementById

点击更换图片就可以从百度的图片跳转到搜狗的图片

<body>

    <img width="200px" height="120px" id="img_logo" src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png">
    <p></p>
    <input onclick="upImg()" type="button" value=" 更换图片 ">
    <hr>
    <script>
         function upImg()
         {
            var sg_img = "https://dlweb.sogoucdn.com/pcsearch/web/index/images/logo_440x140_31de1d2.png?v=d6bfe569";
            document.getElementById("img_logo").src = sg_img;
        }
    </script>
</body>

在这里插入图片描述
在这里插入图片描述

jquery
使用jquery的猜数字游戏
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SecondJS</title>
    <script src="jquery.min.js"></script>
</head>
<body>

    <div>
        <h2>猜数字游戏</h2>
        玩家输入一个 1-10 数字:<input id="input_num" type="text"><p></p>
        <input type="button" value=" 查看结果 " onclick="selectResultJq()">
        <div id="result_div">

        </div>
    </div>
    <hr>
    <script>
         function selectResultJq(){
            // 产生随机数 1-10
            var randomNum = 1+Math.floor(Math.random()*10);
            // document.getElementById("input_num").value
            var userInputNum = jQuery("#input_num").val();//上面是原生写法
           // 井号是id的意思
           //有时候用$来代替jquery
            var msg;
            if(randomNum==userInputNum){
                msg="<h4>恭喜:猜对了</h4>";
            }else{
                msg="<h4>抱歉:猜错了,正确的数字是:"+randomNum+"</h4>";
            }
            // document.getElementById("result_div").innerHTML = msg;
            jQuery("#result_div").html(msg);//上面是原生写法
            //这句话的意思就是通过jquery,查到了div的id,然后把msg这个字符串插以html的格式插入到div里面
        }
    </script>
</body>
</html>
实现聚合搜索
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>聚合搜索</title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <div style="width: 100%;text-align: center;">
        <input type="button" value=" 必应 " onclick="upSearch('https://www.bing.com/')"> &nbsp;&nbsp;&nbsp;
        <input type="button" value=" 搜狗 " onclick="upSearch('https://www.sogou.com/')"> &nbsp;&nbsp;&nbsp;
        <input type="button" value=" 360 " onclick="upSearch('https://www.so.com/')"> &nbsp;&nbsp;&nbsp;
    </div>
    <hr>
    
    <iframe id="ifr" style="width: 100%;height: 600px;" src="https://www.bing.com/"></iframe>
    <!-- iframe就是可以理解成你打开这个页面之后就到了一个你设置的地址的主页,这里的主页就是bing的主页 -->
    <script>
        function upSearch(url){
            jQuery("#ifr").attr("src",url);
            //这句话的意思就是用jquery这个组件找到了ifr这个标签,然后把这个对应标签的src换成调用的url
        }
    </script>
</body>
</html>

在这里插入图片描述

表白墙
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表白墙</title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <div style="width: 100%;text-align: center;">
        <h2>表白墙</h2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input id="username"><p></p>
        对谁&nbsp;&nbsp;&nbsp;<input id="tousername"><p></p>
        说什么:<input id="msg"><p></p>
        <input type="button" value=" 提 交 " onclick="mysub()"><p></p>
        <div id="div_allmsg">

        </div>
    </div>
    <script>
        function mysub(){
            var iptUserName = jQuery("#username");
            var iptToUserName = jQuery("#tousername");
            var iptMsg = jQuery("#msg");
            // 1.非空效验
            if(iptUserName.val().trim()==""){
                alert("请先输入您的名字!");
                iptUserName.focus();
                return;
            }
            if(iptToUserName.val().trim()==""){
                alert("请先输入对方的名字!");
                iptToUserName.focus();
                return;
            }
            if(iptMsg.val().trim()==""){
                alert("请先输入信息!");
                iptMsg.focus();
                return;
            }
            // 2.将内容展示在表白墙
            jQuery("#div_allmsg").append(iptUserName.val()+"对"+iptToUserName.val()+"说:"+iptMsg.val()+"<p></p>");
            // 3.清空输入的内容
            iptUserName.val("");
            iptToUserName.val("");
            iptMsg.val("");
        }
    </script>
</body>
</html>
更多推荐

从腾讯跳槽到英特尔,真实感受爆料

腾讯已经不像互联网公司了,之前国内的互联网还是要感谢一下外企,但是后面就开始卷起来了!在卷的环境里,食堂再好吃也没有用,因为是不会补回来的,而且英特尔已经是外企的天花板了知足吧!如果办公区很有生活的气息,那只能说明这些人根本没有生活,只为事业奋斗!还有很多网友询问英特尔的工作情况和面试情况“面试和工作都是英文吗?”“英

python爬虫:新兴动态渲染工具Playwright的简单介绍和教程

Playwright是一个用于自动化浏览器操作的工具,它支持Chromium、Firefox和WebKit浏览器,并提供了Python、JavaScript和其他编程语言的API。以下是Playwright的介绍和入门教程:1.安装Playwright首先,你需要安装Playwright。在Python中,你可以使用p

PCB布线之电源线干扰?|深圳比创达EMC

一客户画户外摄像头的板子,板子上电源线非常多,6层板,电源层已经被分割完了,还有2根电源线,没办法只能并行走线了,板子画完后发主管评审,主管让其在2根电源线中间走一根地线,该客户感觉没必要,因为地线太长了,太细了会形成天线,而且中间也没有地方可以打地孔。如下图:其实直流电源之间的影响有几个基本的优先原则:电源交流分量高

蓝牙技术|蓝牙轻松部署物联网项目,智能照明利用蓝牙特性快速发展

蓝牙物联网,特别是在低功耗蓝牙(BLE)普及的推动下,在物联网领域取得了显著增长和采用。由于低能耗和长时间使用小型电池的能力,BLE已成为许多物联网应用的首选无线技术。BLE使用与蓝牙相同的无线电频段,同样可以实现两个设备之间的数据交换。主要区别在于,BLE设备在连接之间的大部分时间都处于睡眠模式,并进行简短的通信会话

基于微信小程序的校园生活管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录前言运行环境学生微信端的主要功能有:管理员的主要功能有:具体实现截图视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利代码参考源码获取前言💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ

机器学习:10种方法解决模型过拟合

机器学习:10种方法解决模型过拟合本文介绍机器学习/深度学习建模过程防止模型过拟合的10种有效方法:增加训练数据集交叉验证正则化合适的特征选择降低模型复杂度集成方法早停法EarlyStopping数据增强Dropout监控训练过程方法1:增加训练数据集增加更多的训练数据有助于防止过拟合,主要是因为更多的数据能够提供更全

【kafka实战】03 SpringBoot使用kafka生产者和消费者示例

本节主要介绍用SpringBoot进行开发时,使用kafka进行生产和消费一、引入依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></de

【Java 基础篇】Java网络编程实战:P2P文件共享详解

Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。什么是P2P文件共享?P2P(Peer-to-Peer)文件共享是一种分布式计算模型,其中每个计算机或设备都可以

Java8实战-总结30

Java8实战-总结30并行数据处理与性能并行流正确使用并行流高效使用并行流小结并行数据处理与性能并行流正确使用并行流错用并行流而产生错误的首要原因,就是使用的算法改变了某些共享状态。下面是另一种实现对前n个自然数求和的方法,但这会改变一个共享累加器:publicstaticlongsideEffectSum(long

华为OD机试 - 特异性双端队列(Java 2023 B卷 100分)

目录专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天C

单例模式有几种写法?

作者:猴子007选自:https://monkeysayhi.github.io“你知道茴香豆的‘茴’字有几种写法吗?”纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和codingstyle的同时,还很容易扩展到其他问题。这里讲解几种笔者常用的写法,但切忌生搬硬套,去记“茴

热文推荐