记事本写的html打不开,首要原因是文件扩展名被误存为.txt;需在“另存为”中选“所有文件”并命名为index.html;其次注意浏览器对本地file://协议的安全限制、js执行时机与路径错误、以及缓存导致的旧内容显示问题。

记事本写的 HTML 在浏览器里打不开?先看文件扩展名
记事本默认保存为 .txt,哪怕你写的是 Hello,系统也当纯文本处理。浏览器双击打开时,实际加载的是一个被当成文本的 index.html.txt,自然一片空白或显示源码。
- 保存时必须手动在「另存为」对话框中:
- 文件名填
index.html(不能是index.html.txt) - 「保存类型」下拉选「所有文件」,不是「文本文档 (.txt)」
- 文件名填
- Windows 资源管理器若隐藏了扩展名,容易误判——进「查看」→勾选「文件扩展名」再确认
浏览器双击没反应?检查是否被当成本地文件拦截
现代浏览器(Chrome、Edge)出于安全限制,直接双击本地 file:// 协议的 HTML 文件时,会禁用部分功能:比如 fetch() 加载本地 JSON、import 模块、甚至某些 CSS 动画。
- 最稳妥的启动方式:把文件拖进已打开的浏览器窗口,或在浏览器地址栏粘贴完整路径,例如:
file:///C:/demo/index.html - 如果页面里用了
fetch('./data.json')却报net::ERR_FAILED,这不是代码错,是浏览器策略——要么换服务器环境(如python3 -m http.server),要么暂时用 Firefox 测试(对本地文件限制稍松)
写了 JS 却没执行?常见三个静默失败点
HTML 里写 <script>console.log('hi')</script> 看不到输出,往往不是语法问题,而是:
- 脚本放在
里,但 DOM 还没加载,后续操作document.getElementById()返回null—— 改成加defer属性,或移到前 - 引入外部 JS 时路径写错:
<script src="js/main.js"></script>要求目录结构真有js/子文件夹,且大小写严格(Windows 不敏感,但部署到 Linux 服务器就挂) - 控制台报
Uncaught SyntaxError: Unexpected token ':通常是服务器返回了 HTML(比如 404 页面)而非 JS 文件,本质是路径 404,但浏览器仍尝试解析为 JS
为什么改了一行 HTML,刷新还是旧内容?缓存比你想的更固执
浏览器对本地 file:// 文件的缓存策略不统一,尤其 Chrome 会强缓存 HTML 和内联脚本。
立即学习“前端免费学习笔记(深入)”;
- 刷新时按
Ctrl + F5(硬刷新),或右键标签页 →「重新加载此页面」 - 更可靠的办法:在地址栏末尾加个问号参数,比如把
file:///C:/test/index.html改成file:///C:/test/index.html?v=2 - 如果用了内联
<style></style>或<script></script>,改完务必清空浏览器缓存(设置 → 隐私和安全 → 清除浏览数据 → 勾选「缓存的图片和文件」)
本地跑 HTML 最难的不是写代码,是让系统和浏览器“相信”你给它的真是 HTML。扩展名、路径、协议、缓存——每个环节都卡得无声无息。










