上一篇
html调用的js
- 行业动态
- 2025-04-27
- 4205
在HTML中调用JS可通过三种方式:1.内联脚本(直接写在元素事件属性中);2.内部脚本(通过`
标签嵌入页面头部或尾部);3.外部脚本(使用
引入独立JS文件),推荐将核心功能放在外部文件中,通过
defer/async`控制加载时机,提升性能与维护性
内联脚本调用
通过<script>
标签直接在HTML中编写JavaScript代码,适用于少量逻辑处理。
示例代码 | 说明 |
---|---|
<script>alert("页面加载完成");</script> | 直接在HTML中嵌入JS代码,随HTML解析立即执行 |
<button onclick="console.log('点击')">点我</button> | 通过HTML事件属性调用内联JS函数 |
外部脚本调用
将JavaScript代码封装到独立文件,通过<script>
标签引入,提升代码复用性。
关键属性 | 作用 | 示例 |
---|---|---|
src | 指定外部JS文件路径 | <script src="main.js"></script> |
type | 声明脚本类型(默认可省略) | <script type="text/javascript" src="app.js"></script> |
事件驱动调用
通过HTML元素事件属性或添加事件监听器触发JS执行。
绑定方式 | 示例代码 | 说明 |
---|---|---|
行内事件 | <img src="pic.jpg" onload="showImage()"> | 元素加载完成时调用showImage函数 |
事件监听 | document.getElementById('btn').addEventListener('click', function() { ... }) | 通过JS代码动态绑定事件 |
异步加载脚本
使用async
或defer
属性控制脚本加载行为,优化页面性能。
属性 | 加载时机 | 执行顺序 |
---|---|---|
async | 下载完立即执行 | 不保证执行顺序 |
defer | 下载完执行 | 按顺序执行并等待DOM解析完成 |
无属性 | 同步加载阻塞渲染 | 按顺序执行 |
模块化调用(ES6+)
通过<script type="module">
引入模块化JS,支持ES6导入导出语法。
<script type="module" src="main.js"></script>
// main.js import { greet } from './utils.js'; greet('World');
问题与解答
Q1:如何确保外部脚本加载完成后再执行?
A:可通过以下方式实现:
- 使用
defer
属性:<script src="app.js" defer></script>
- 监听
load
事件:const script = document.createElement('script'); script.src = 'app.js'; script.onload = () => { console.log('脚本加载完成'); }; document.head.appendChild(script);
Q2:多个脚本文件如何控制执行顺序?
A:方法包括:
- 按顺序排列
<script>
标签(同步加载) - 使用
defer
属性(按顺序执行) - 显式依赖管理:
<script src="base.js" defer></script> <script src="utils.js" defer></script> <script src="main.js"