怎么在HTML 404错误页添加趣味小游戏

阿丽君_7774

阿丽君_7774

2026-10-14

849人浏览

原创

直接在404页嵌入canvas游戏易失败,因服务器静态返回不执行外部js、拦截fetch请求,且存在跨域、老旧渲染环境(如ie8+)、禁用storage、禁止document.write等限制;必须内联所有代码、避免现代语法、兼容html 4.01,并确保http状态码为真实404且不干扰语义与seo。

怎么在html 404错误页添加趣味小游戏

为什么直接在404页里嵌入Canvas游戏容易失败

因为HTML 404页面通常由服务器静态返回,不执行外部JS、不加载CDN资源,甚至会拦截fetch或XMLHttpRequest请求。你写的game.js可能根本没加载,或者加载后因跨域被Blocked loading resource报错。

真正能跑起来的方案,必须满足:所有代码(HTML + CSS + JS)内联、无外部依赖、不依赖window.location跳转逻辑(404页URL本身可能已损坏)、兼容IE8+(部分老服务器仍用HTML 4.01 DTD)。

  • 避免使用import、async、await——HTML 404页常运行在老旧渲染环境
  • 不要读取localStorage或sessionStorage——某些安全策略下会被禁用
  • 禁止调用document.write()——它会清空整个页面,包括你刚写的404提示
  • 用setTimeout代替requestAnimationFrame——后者在IE9以下不可用

用纯内联Canvas实现“点击方块”小游戏(兼容HTML 4.01)

这个小游戏只依赖<canvas></canvas>和原生onmousedown,所有逻辑压进一个<script></script>标签,连CSS都写在style属性里。实测可在Apache/Nginx的默认404.html中直接粘贴生效。

<canvas id="game" width="320" height="240" style="border:1px solid #ccc;background:#f9f9f9;"></canvas><script>
var canvas = document.getElementById('game');
var ctx = canvas.getContext('2d');
var score = 0;
var target = { x: 50, y: 50, w: 40, h: 40 };
<p>function draw() {
ctx.clearRect(0,0,320,240);
ctx.fillStyle = '#4CAF50';
ctx.fillRect(target.x, target.y, target.w, target.h);
ctx.fillStyle = '#000';
ctx.font = '14px monospace';
ctx.fillText('Score: ' + score, 10, 20);
}<p>function moveTarget() {
target.x = Math.floor(Math.random() <em> 260) + 10;
target.y = Math.floor(Math.random()  180) + 10;
}<p>canvas.onmousedown = function(e) {
var rect = canvas.getBoundingClientRect();
var x = e.clientX - rect.left;
var y = e.clientY - rect.top;
if (x > target.x && x < target.x + target.w &&
y > target.y && y < target.y + target.h) {
score++;
moveTarget();
}
};<p>(function loop() {
draw();
setTimeout(loop, 50);
})();
</script>

注意:<canvas></canvas>标签必须放在<script></script>之前;&&不能写成&&(XHTML/HTML 4.01会解析失败);所有引号统一用英文双引号。

Article To Html
Article To Html

文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。

下载

如何让游戏不干扰404语义和SEO

搜索引擎和屏幕阅读器需要明确知道这是错误页。游戏只是装饰,不能掩盖HTTP状态码和语义结构。

  • 确保服务器真实返回HTTP/1.1 404 Not Found响应头——游戏再炫酷,状态码错了就是无效404
  • 保留<h1>404</h1>和<p>The page you requested does not exist.</p>等可读文本,放在<canvas></canvas>上方或下方
  • 给<canvas></canvas>加aria-hidden="true",防止读屏软件误读图形内容
  • 避免用position: fixed遮盖文字——移动端用户可能点不到“返回首页”链接

替换默认Nginx/Apache 404页的实操要点

不是把代码丢进404.html就完事。关键路径和权限必须对:

  • Nginx:确认error_page 404 /404.html;指向的是根目录下的文件,且/404.html有location块允许访问(否则返回空白)
  • Apache:检查ErrorDocument 404 /404.html是否启用,且.htaccess未重写该路径
  • 所有服务器:确保404.html文件编码为UTF-8无BOM,否则<script></script>里的中文注释可能导致JS解析中断
  • 测试时用curl -I https://yoursite.com/this-page-does-not-exist验证响应头确实是404,而不是200伪装

最常被忽略的一点:游戏逻辑里别调用history.back()或location.href——用户按F5刷新404页时,JS会重新执行,但此时页面URL仍是错误路径,硬跳转可能陷入死循环。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

在线游戏
在线游戏

海量精品小游戏合集,无需安装即点即玩,休闲益智、动作闯关应有尽有,秒开即玩,轻松解压,快乐停不下来

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

6015

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3392

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

3070

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

3079

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4859

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

3021

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2829

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2508

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2548

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML教程
HTML教程

共500课时 | 10.5万人学习

HTML 基础教程
HTML 基础教程

共45课时 | 20.5万人学习

GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习