当前位置:首页 > JavaScript

js实现404

2026-02-02 10:54:14JavaScript

在JavaScript中实现404页面处理

通过监听路由变化或检查资源状态,可以动态触发404页面的显示或跳转。以下是几种常见实现方式:

使用前端路由库(如React Router)

在单页应用(SPA)中,可以通过路由配置定义404页面:

// React Router v6示例
import { Routes, Route } from 'react-router-dom';

function App() {
  return (
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/about" element={<About />} />
      <Route path="*" element={<NotFound />} /> // 匹配所有未定义路径
    </Routes>
  );
}

原生JavaScript检测无效路径

通过解析当前URL路径与有效路由列表对比:

const validRoutes = ['/', '/home', '/contact'];
const currentPath = window.location.pathname;

if (!validRoutes.includes(currentPath)) {
  window.location.href = '/404.html'; // 跳转至静态404页面
  // 或动态渲染404内容
  document.body.innerHTML = '<h1>404 Not Found</h1>';
}

动态内容加载失败处理

当异步加载资源失败时触发404状态:

fetch('/api/data')
  .then(response => {
    if (response.status === 404) {
      throw new Error('Resource not found');
    }
    return response.json();
  })
  .catch(error => {
    if (error.message.includes('404')) {
      render404Page();
    }
  });

function render404Page() {
  // 动态插入404内容
}

服务端配合方案

结合Node.js等后端服务返回404状态码:

// Express示例
app.use((req, res, next) => {
  res.status(404).sendFile(path.join(__dirname, '404.html'));
});

前端可通过检查响应状态码处理:

js实现404

fetch('/some-page')
  .then(res => {
    if (res.status === 404) {
      // 处理404逻辑
    }
  });

注意事项

  • 对于SEO优化,确保服务端返回真实的HTTP 404状态码
  • 在静态网站中,需配置服务器(如Nginx)将所有未匹配路径指向404页面
  • 提供返回首页或导航选项改善用户体验
  • 考虑记录404路径用于分析无效链接

标签: js
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js 实现图片 放大

js 实现图片 放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性可以实现图片的平滑放大效果。结合 JavaScript 监听鼠标事件控制放大状态: con…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…