当前位置:首页 > JavaScript

js实现页面切换

2026-03-01 00:39:45JavaScript

使用 window.location 实现页面跳转

通过修改 window.location.href 可以直接跳转到新页面:

window.location.href = "https://example.com"; // 跳转到指定URL
window.location.replace("https://example.com"); // 替换当前页面(不保留历史记录)

使用 history.pushState 实现无刷新路由

适合单页应用(SPA),动态修改URL而不刷新页面:

history.pushState({}, "", "/new-page"); // 添加新历史记录
history.replaceState({}, "", "/updated-page"); // 替换当前历史记录

需配合 popstate 事件监听URL变化:

js实现页面切换

window.addEventListener("popstate", () => {
  console.log("URL changed:", window.location.pathname);
});

使用 <a> 标签模拟跳转

通过编程方式触发标签点击:

const link = document.createElement("a");
link.href = "/target-page";
link.click(); // 模拟用户点击

使用框架路由(React/Vue示例)

React Router 示例:

js实现页面切换

import { useNavigate } from "react-router-dom";
function Component() {
  const navigate = useNavigate();
  navigate("/target-page"); // 编程式导航
}

Vue Router 示例:

this.$router.push("/target-page"); // 跳转并保留历史
this.$router.replace("/no-history"); // 替换当前路由

使用 iframe 切换局部内容

动态修改 iframesrc 属性实现局部加载:

<iframe id="content-frame"></iframe>
<script>
  document.getElementById("content-frame").src = "/partial-page.html";
</script>

注意事项

  • 普通跳转会触发页面刷新,单页应用推荐使用路由库(如 React Router/Vue Router)。
  • history.pushState 需自行处理路由逻辑,通常与框架集成使用。
  • 跨域页面无法通过 window.location 获取目标页面内容。

标签: 页面js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

vue 实现页面跳转

vue 实现页面跳转

vue 实现页面跳转的方法 在 Vue 中实现页面跳转主要通过路由(Vue Router)完成,以下是几种常见的方式: 声明式导航(模板中使用 <router-link>) 在模板中直接…

vue怎么实现页面返回

vue怎么实现页面返回

实现页面返回的方法 在Vue中实现页面返回功能可以通过以下几种方式: 使用Vue Router的go方法 this.$router.go(-1) 该方法接受一个整数参数,表示在历史记录中前进或后退…

vue如何实现默认页面

vue如何实现默认页面

Vue 实现默认页面的方法 在 Vue 项目中,通常需要设置一个默认页面(如首页或登录页)作为用户访问时的初始页面。可以通过路由配置实现。 配置路由默认跳转 在 Vue Router 中,使用 re…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…