前端原生能力速查笔记(HTML + 浏览器 API 实战篇)

作者:遇见~未来日期:2025/12/20

本笔记用于整理前端开发中不依赖框架即可实现的高频实用功能,涵盖文件下载、打印、HTML 原生属性以及浏览器内置 JS API。
适合作为:日常开发速查 / 基础能力沉淀 / 新人教学笔记


一、a 标签文件下载功能

1. 核心原理

利用 HTML5 的 download 属性,
让浏览器在点击链接时触发下载行为,而不是直接预览资源


2. 基础用法

1<!-- 直接下载(使用原文件名) -->
2<a href="files/demo.pdf" download>下载 PDF</a>
3<!-- 自定义下载文件名 -->
4<a href="files/image.jpg" download="封面图.jpg">
5  下载图片
6</a>

3. 注意事项(重点)

(1)跨域限制
  • 同源资源:download 生效
  • 跨域资源:浏览器会忽略 download

✅ 正确方案:后端设置响应头

Content-Disposition: attachment; filename="文件名.ext"


(2)兼容性
  • ✅ Chrome / Edge / Firefox / Safari
  • ❌ IE 不支持

(3)接口返回文件(Blob 下载)
1const blob = new Blob([data]);
2const url = URL.createObjectURL(blob);
3
4const a = document.createElement("a");
5a.href = url;
6a.download = "文件名.xlsx";
7a.click();
8
9URL.revokeObjectURL(url);

二、前端打印功能

1. 全页打印(基础)

1<button onclick="window.print()">打印页面</button>
2

📌 window.print() 是浏览器唯一标准打印入口。


2. 指定区域打印

HTML
1<div class="print-content">
2  <h3>打印标题</h3>
3  <p>需要打印的内容</p>
4</div>
5<button onclick="window.print()">打印</button>
6
CSS(打印核心)
1@media print {
2  body * {
3    visibility: hidden;
4  }
5
6  .print-content,
7  .print-content * {
8    visibility: visible;
9  }
10
11  .print-content {
12    position: absolute;
13    left: 0;
14    top: 0;
15    width: 100%;
16  }
17}

3. 打印进阶优化

(1)纸张与边距
1@media print {
2  @page {
3    size: A4;
4    margin: 2cm;
5  }
6}
(2)打印背景色
1@media print {
2  .print-content {
3    -webkit-print-color-adjust: exact;
4    print-color-adjust: exact;
5  }
6}
(3)分页控制
1@media print {
2  .page-start {
3    page-break-before: always;
4  }
5
6  .page-end {
7    page-break-after: always;
8  }
9
10  .no-break {
11    page-break-inside: avoid;
12  }
13}
(4)打印字体
1@media print {
2  body {
3    font-family: Arial, sans-serif;
4    font-size: 12pt;
5  }
6}

三、常用 HTML 原生实用属性

标签属性功能
imgloading="lazy"图片懒加载
inputrequired表单非空校验
videocontrols默认播放控件
textareaplaceholder输入提示
selectmultiple多选下拉
formautocomplete自动填充
labelfor聚焦绑定 input
details<summary>原生折叠面板

📌 能用 HTML 解决的问题,优先不用 JS。


四、浏览器内置 JavaScript API

1. 复制到剪贴板

推荐:Clipboard API

1async function copyText() {
2  await navigator.clipboard.writeText("要复制的内容");
3  alert("复制成功");
4}

⚠️ 需 HTTPS / localhost。


兼容旧方案(已废弃)

document.execCommand("copy");


2. 全屏功能

1function enterFullscreen(el) {
2  el.requestFullscreen?.() ||
3  el.webkitRequestFullscreen?.() ||
4  el.msRequestFullscreen?.();
5}
6
7function exitFullscreen() {
8  document.exitFullscreen?.() ||
9  document.webkitExitFullscreen?.() ||
10  document.msExitFullscreen?.();
11}

📌 必须由用户点击触发。


3. 本地存储

localStorage(长期)

1localStorage.setItem("key", "value");
2localStorage.getItem("key");
3localStorage.removeItem("key");
4localStorage.clear();

sessionStorage(会话级)

sessionStorage.setItem("temp", "123");

⚠️ 只能存字符串,对象需 JSON。


4. 地理定位

1navigator.geolocation.getCurrentPosition(
2  (pos) => {
3    console.log(pos.coords.latitude, pos.coords.longitude);
4  },
5  (err) => {
6    console.log(err.message);
7  }
8);

⚠️ HTTPS + 用户授权。


5. 系统通知(Notification)

申请权限

await Notification.requestPermission();

发送通知

1new Notification("通知标题", {
2  body: "通知内容",
3  icon: "icon.png"
4});

注意

  • 必须 HTTPS(localhost 例外)
  • 用户可随时关闭权限
  • IE 不支持

结语

前端的底层能力,来自对浏览器本身的理解。
熟练掌握这些原生功能,能显著提升开发效率与代码质量。


前端原生能力速查笔记(HTML + 浏览器 API 实战篇)》 是转载文章,点击查看原文


相关推荐


自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等
moonsims2025/12/12

自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等 在小说阅读器中沉浸阅读 IMU 惯性测量单元(Inertial Measurement Unit) 是测量物体三轴角速度和加速度的设备。一个IMU内可能会装有三轴陀螺仪和三轴加速度计,来测量物体在三维空间中的角速度和加速度。严格意义上的IMU只为用户提供三轴角速度以及三轴加速度数据。 VRU 垂直参考单元(Vertical Reference Unit)是


C++单元测试框架选型与实战速查手册
码事漫谈2025/12/3

在C++项目的质量护城河中,单元测试框架的选择如同挑选一把趁手的兵器,它直接决定了测试的效率、可维护性以及与开发流程的契合度。GoogleTest、Catch2和doctest,这三款当今最主流的选择,各有其鲜明的武功路数。本文将为你揭开它们的核心秘籍与实战优劣势,助你一招制胜。 一、框架核心价值定位 1.1 三大框架战略定位分析 维度GoogleTest (v1.14+)Catch2 (v3.5+)doctest


MySQL 版本演进全景图:从 5.6 到 8.4 的技术变革与行业实践
刘一说2025/12/29

文章目录 一、版本演进时间线概览二、核心功能迭代:从基础架构到现代数据库1. 数据类型与存储引擎革新2. 查询语言与计算能力3. 事务与一致性 三、架构与性能优化:从单机到云原生1. 复制与高可用2. 性能调优 四、安全与兼容性:从传统认证到现代密钥管理1. 认证机制演变2. 加密与审计 五、典型场景适配建议六、未来趋势与行业挑战结语 一、版本演进时间线概览 版本发布时间核心突破行业定位5.62013年在线 DDL、性能优化传统 OLTP 基础架构5.7201


Excel/WPS 表格数据合并操作指南
GalenZhang8882026/1/6

Excel/WPS 表格数据合并操作指南 场景一:同一个文件,不同工作表(Sheet) 适用情况:数据都在同一个 Excel 文件里,比如在 Sheet1 和 Sheet2,都有共同的 A列 作为关联。 1. 推荐公式:XLOOKUP 公式示例: =XLOOKUP(A2, Sheet2!A:A, Sheet2!D:D) 2. 参数详细说明 A2(查找值): 当前表格(Sheet1)中你要拿去匹配的那个单元格(通常是 ID、姓名等)。Sheet2!A:A(查找数组): 去哪里找这个 ID?即 S


【云计算】利用 LVS 构建集群实现负载均衡 | 集群的概念 | 单服务器性能瓶颈验证例子 | LVS 基础 | LVS 构建负载均衡集群实操步骤
王平渊2026/1/15

利用 LVS 构建集群实现负载均衡 LVS 是构建高性能、高可靠负载均衡集群的利器,其内核态转发机制和丰富的调度算法,使其成为大规模集群场景的首选方案。在实际应用中,需根据业务场景选择合适的工作模式(DR 模式为最优选择),并结合 Keepalived 实现高可用,最终解决单服务器的性能瓶颈问题。 Ⅰ. 集群(Cluster)基础 0x00 集群的概念 集群(Cluster),是一组相互独立且相互依赖、通过高速网络互联的计算机组成的计算机组,以单一模式加以管理,为用户提供统一服务。 从用户视角


🚀 纯前端离线局域网P2P大文件断点传输:别让你的照片墙崩了
子兮曰2026/1/23

前言:小明和他的照片墙危机 想象一下,你是小明,一个热爱摄影的程序员。周末去爬山拍了一堆4K高清照片,总共3GB,准备发给老婆分享。微信传?算了,压缩后画质渣得像像素风。网盘?离线状态下连不上。蓝牙?慢得像蜗牛在跑步。你急得团团转,突然灵机一动:用电脑直接传啊!可是怎么在浏览器里实现局域网P2P大文件传输,还得支持断点续传?别急,今天咱们就聊聊这个技术方案。 技术背景:P2P不是什么新鲜玩意儿 P2P(点对点)传输在局域网里其实挺常见的,BT下载就是经典案例。但咱们今天聊的是纯前端实现,意思是完

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客