在HTML中使用JavaScript

在 HTML 中使用 JavaScript 有以下几种常见的方式:

 

 

 

一、内联脚本

 

(一)基本语法

 

内联脚本是将 JavaScript 代码直接嵌入到 HTML 文件的 <script> 标签内部。

 

 

<!DOCTYPE html>

<html lang="en">

 

<head>

  <meta charset="UTF-8">

  <title>内联脚本示例</title>

</head>

 

<body>

  <script>

    // 变量声明与赋值

    var message = "Hello, World!";

 

    // 函数定义

    function showMessage() {

      console.log(message);

    }

 

    // 函数调用

    showMessage();

 

    // 条件语句

    if (message.length > 5) {

      console.log("消息长度大于 5");

    } else {

      console.log("消息长度小于或等于 5");

    }

 

    // 循环语句

    for (var i = 0; i < 5; i++) {

      console.log(i);

    }

  </script>

</body>

 

</html>

 

 

在上述示例中,我们在 <script> 标签内部定义了变量、函数,并进行了函数调用、条件判断和循环操作等基本的 JavaScript 编程操作。

 

(二)注意事项

 

1.  <script> 标签可以放在 <head> 或 <body> 部分,但通常建议将功能性的脚本放在 <body> 的底部,以确保在页面的内容加载完成后再执行脚本,避免因脚本执行时间过长导致页面加载卡顿或显示异常。

2. 内联脚本适合编写少量、简单的 JavaScript 代码。对于大型项目和复杂的功能,使用外部脚本文件(将在后面介绍)可以更好地组织和管理代码。

 

二、外部脚本文件

 

(一)创建外部脚本文件

 

您可以使用任何文本编辑器(如 Visual Studio Code、Sublime Text 等)创建一个扩展名为 .js 的文件,在其中编写 JavaScript 代码。

 

例如,创建一个名为  myScript.js  的文件,内容如下:

 

 

function greet(name) {

  alert(`Hello, ${name}!`);

}

 

function calculateSum(num1, num2) {

  return num1 + num2;

}

 

 

(二)在 HTML 中引用外部脚本文件

 

要在 HTML 文件中使用这个外部脚本文件,您可以在 HTML 文件的 <head> 或 <body> 部分添加 <script> 标签,并通过 src 属性指定脚本文件的路径。

 

<!DOCTYPE html>

<html lang="en">

 

<head>

  <meta charset="UTF-8">

  <title>外部脚本示例</title>

  <script src="myScript.js"></script>

</head>

 

<body>

  <button οnclick="greet('Alice')">点击问候</button>

  <p>两数之和为:<span id="sumResult"></span></p>

  <button οnclick="var sum = calculateSum(5, 3); document.getElementById('sumResult').innerHTML = sum;">计算两数之和</button>

</body>

 

</html>

 

 

(三)注意事项

 

1. 请确保 src 属性中指定的文件路径是正确的,相对路径或绝对路径都可以。

2. 当浏览器遇到带有 src 属性的 <script> 标签时,它会暂停 HTML 文档的解析,去下载并执行指定的脚本文件,然后再继续解析 HTML 文档。

 

三、事件处理

 

(一)基本概念

 

事件是用户与网页进行交互时发生的操作,例如点击按钮、鼠标移动、键盘输入等。您可以使用 JavaScript 来监听这些事件,并在事件发生时执行相应的代码。

 

(二)常见的事件类型

 

1.  click 事件:当用户点击元素时触发。

2.  mouseover 事件:当鼠标指针移到元素上时触发。

3.  mouseout 事件:当鼠标指针移出元素时触发。

4.  keydown 事件:当用户按下键盘上的某个键时触发。

5.  keyup 事件:当用户释放键盘上的某个键时触发。

6.  submit 事件:当用户提交表单时触发。

7.  load 事件:当页面或图像等资源加载完成时触发。

 

(三)事件处理程序的添加方式

 

1. HTML 属性方式(内联事件处理程序)

 

您可以在 HTML 元素的属性中直接指定事件处理函数,例如:

 

 

<!DOCTYPE html>

<html lang="en">

 

<head>

  <meta charset="UTF-8">

  <title>内联事件处理示例</title>

</head>

 

<body>

  <button οnclick="alert('你点击了按钮!')">点击我</button>

</body>

 

</html>

 

 

在上述示例中,当用户点击按钮时,会弹出一个包含文本“你点击了按钮!”的警告框。

 

这种方式虽然简单直观,但将 HTML 和 JavaScript 代码紧密耦合在一起,不利于代码的维护和管理,因此在实际开发中不建议大量使用。

 

2. DOM 方式

 

通过 JavaScript 的 addEventListener() 方法为元素添加事件处理程序,这种方式可以实现 HTML 和 JavaScript 代码的分离,提高代码的可维护性。

 

 

<!DOCTYPE html>

<html lang="en">

 

<head>

  <meta charset="UTF-8">

  <title>DOM 事件处理示例</title>

</head>

 

<body>

  <button id="myButton">点击我</button>

  <script>

    var button = document.getElementById('myButton');

 

    button.addEventListener('click', function() {

      alert('你点击了按钮!');

    });

  </script>

</body>

 

</html>

 

 

在上述示例中,首先通过 getElementById() 方法获取到按钮元素,然后使用 addEventListener() 方法为按钮添加 click 事件的处理程序。当用户点击按钮时,会弹出一个包含文本“你点击了按钮!”的警告框。

 

(四)注意事项

 

1. 同一个事件可以添加多个事件处理程序,它们会按照添加的顺序依次执行。

2.  addEventListener() 方法的第三个参数是一个可选的对象,用于指定事件处理的一些选项,如事件捕获阶段还是冒泡阶段处理事件、是否在事件处理程序执行期间阻止事件的默认行为等。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言安装devtools包失败过程总结

R语言安装devtools包时&#xff0c;遇到usethis包总是安装失败&#xff0c;现总结如下方法&#xff0c;亲测可有效 一、usethis包及cli包安装问题 首先&#xff0c;Install.packages("usethis")出现如下错误&#xff0c;定位到是这个cli包出现问题 载入需要的程辑包…

深层神经网络示例

输出层采用sigmoid&#xff0c;隐藏层采用tanh import numpy as np # 设置一些画图相关的参数 import matplotlib.pyplot as pltplt.rcParams[figure.figsize] (5.0, 4.0) plt.rcParams[image.interpolation] nearest plt.rcParams[image.cmap] gray from project_03.utils…

Oracle 19c和23ai都有哪些变化

Oracle版本新特性 Oracle 19c和Oracle 23ai&#xff0c;最为官方长期支持的两个版本&#xff0c;一个是目前生产环境使用最多的新版本&#xff08;笔者运维环境&#xff09;&#xff0c;一个是目前官方发布的最新版本数据库&#xff0c;两者在各自版本的功能和特性方面都有着比…

护网HW面试—apacheiisnginx中间件解析漏洞篇

参考&#xff1a;Apache/IIS/Nginx中间件解析漏洞_分别说出iis、apache、nginx解析漏洞原理-CSDN博客 一、apache 1、Apache HTTPD 换行解析漏洞 Apache HTTPD是一款HTTP服务器&#xff0c;它可以通过mod_php来运行PHP网页。 其2.4.0~2.4.29版本中存在一个解析漏洞。 在解…

永磁同步电机控制算法--基于 SVM 的无磁链环 DTC

永磁同步电机无磁链环 DTC 通过控制定子磁链交轴分量来直接控制转矩&#xff0c;不再要求控制磁链幅值恒定&#xff0c;省去了传统 DTC 中的磁链环&#xff0c;不仅转矩响应更快&#xff0c;有效抑制了转矩脉动&#xff0c;而且提高了电机功率因数。但无磁链环 DTC 方案仍采用传…

TCPDump协议分析工具

TCPDump协议分析工具 TCPDump是一个强大的命令行工具&#xff0c;用于捕获和分析网络数据包。它能够实时监控和记录网络流量&#xff0c;帮助网络管理员和安全专家排查网络问题、分析流量和检测网络攻击。以下是TCPDump的详细介绍&#xff0c;包括其安装、基本使用、过滤规则和…

YOWOv2(yowov2)动作识别+Fastreid身份识别 详细安装与实现

首先yowov2是一款简单且实时的时空动作检测方案&#xff0c;fastreid是行人重识别&#xff08;身份识别&#xff09; yowov2介绍链接直达fastreid链接直达为时空动作检测任务设计实时框架仍然是一个挑战。YOWOv2 提出了一种新颖的实时动作检测框架&#xff0c;利用三维骨干和二…

Python|OpenCV-实现人物的姿态识别检测以及实时计数(18)

前言 本文是该专栏的第20篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 本文将基于OpenCV以及MediaPipe,来实现视频与摄像头中的人物,进行仰卧起坐的动态检测以及实时计数(本文进行人物的姿态识别,仅以人物的仰卧起坐的动态动作为例)。 具体细节部分以及完…

【Js】导出 HTML 为 Word 文档

在 Web 开发中&#xff0c;有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档&#xff0c;以便更方便地分享和打印。 html样式 word文档 工具准备 1、 html-docx-js - npm html-docx-js是一个 JavaScript 库&#xff0c;用于将 HTML 内容转换为 Word 文档的格式。它…

在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换

一、首先要先安装一个虚拟的环境 安装Miniconda包 Miniconda的官网链接:Minidonda官网 下载好放在要操作的linux系统,我用的是远程服务器的linux系统,我放在whl这个文件夹里面,这个文件夹是我自己创建的 运行安装 安装的操作都是yes就可以了 检查是否安装成功,输入下面…

【CEEMDAN-VMD-CNN-LSTM】双重分解+卷积神经网络+长短期记忆神经网络多变量回归预测,多变量输入模型

双重分解&#xff08;Dual Decomposition&#xff09;、卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;和长短期记忆神经网络&#xff08;Long Short-Term Memory&#xff0c;LSTM&#xff09;结合的多变量回归预测需要详细的实现和数据情况…

【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】

文章目录 0. 前言1. 安装前准备工作1.1 创建weihu用户1.2 安装依赖包1.2.1 安装 GMP1.2.2 安装MPFR1.2.3 安装MPC 2. gcc10.0.1版本安装3. 报错解决3. 1. wget下载报错 4. 参考文档 0. 前言 gcc&#xff08;GNU Compiler Collection&#xff09;是GNU项目的一部分&#xff0c;…

在unity的ECS框架中SystemAPI.Time.DeltaTime的值如何确定

在Unity的ECS&#xff08;Entity Component System&#xff09;框架中&#xff0c;SystemAPI.Time.DeltaTime 是一个用于获取上一帧所花费时间的值。这个值是通过Unity的 Time.deltaTime 来确定的&#xff0c;但在ECS框架中&#xff0c;它被封装在 SystemAPI.Time 命名空间下&a…

埋点系统如何统计用户的平均停留时长?

Hello&#xff0c;大家好&#xff0c;欢迎使用Webfunny前端监控和埋点系统。 今天&#xff0c;我们将介绍webfunny的埋点系统如何统计用户的平均停留时长 一、页面beforeLeave事件 当你页面离开的时候&#xff0c;会触发一个心跳检测&#xff0c;但是这个可能不是100%触发&am…

C# Static的一些理解

静态类 一、静态类   静态类与非静态类的重要区别在于静态类不能实例化&#xff0c;也就是说&#xff0c;不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字&#xff0c;具有两个方面的意义&#xff1a;首先&#xff0c;它防止程序员写代码来实例化…

各向异性含水层中地下水三维流基本微分方程的推导(二)

各向异性含水层中地下水三维流基本微分方程的推导 参考文献&#xff1a; [1] 刘欣怡,付小莉.论连续性方程的推导及几种形式转换的方法[J].力学与实践,2023,45(02):469-474. 书接上回&#xff1a; 我们能得到三个方向的流入流出平衡方程&#xff1a; ∂ ρ u x ∂ x d x d y d…

Linux 下 redis 集群部署

目录 1. redis下载 2. 环境准备 3. redis部署 3.1 修改系统配置文件 3.2 开放端口 3.3 安装 redis 3.4 验证 本文将以三台服务器为例&#xff0c;介绍在 linux 系统下redis的部署方式。 1. redis下载 下载地址&#xff1a;Index of /releases/ 选择需要的介质下载&am…

MUX-VLAN基本概述

1&#xff09;技术背景&#xff1a; 在企业网络中&#xff0c;各个部门之间网络需要相互独立&#xff0c;通常使用VLAN技术可以实现这一要求。如果企业规模很大&#xff0c;且拥有大量的合作伙伴&#xff0c;要求各个合作伙伴之间能够访问公司服务器&#xff0c;但是不能相互访…

【常见开发问题】阿里云无法登录的问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【Python 项目】类鸟群:仿真鸟群

类鸟群&#xff1a;仿真鸟群 仔细观察一群鸟或一群鱼&#xff0c;你会发现&#xff0c;虽然群体由个体生物组成&#xff0c;但该群体作为一个整体似乎有它自己的生命。鸟群中的鸟在移动、飞越和绕过障碍物时&#xff0c;彼此之间相互定位。受到打扰或惊吓时会破坏编队&#xf…