最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js控制瀏覽器前進、后退、頁面跳轉(zhuǎn)詳細方法和示例

 更新時間:2025年07月18日 10:21:10   作者:Ynov  
這篇文章主要介紹了js控制瀏覽器前進、后退、頁面跳轉(zhuǎn)詳細方法和示例,包括location.href跳轉(zhuǎn)、history.back/forward前進后退、pushState修改歷史記錄,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

在 JavaScript 中,控制瀏覽器導航(前進、后退、跳轉(zhuǎn))主要通過 window 對象的屬性和方法實現(xiàn)。以下是詳細方法和示例:

1. 頁面跳轉(zhuǎn)(最常用)

方法1:window.location.href

// 跳轉(zhuǎn)到指定URL(會在瀏覽器歷史記錄中添加新條目)
window.location.;

// 等同于:
window.location = 'https://www.example.com';

方法2:window.location.replace()

// 跳轉(zhuǎn)到指定URL(不會添加歷史記錄,無法后退)
window.location.replace('https://www.example.com');
  • 適用場景:支付完成后禁止回退到支付頁。

方法3:window.open()

// 在新標簽頁打開URL
window.open('https://www.example.com', '_blank');

// 在當前頁打開(等同href)
window.open('https://www.example.com', '_self');

2. 控制前進/后退

方法1:window.history.back()

// 后退一步(等同瀏覽器后退按鈕)
window.history.back();

方法2:window.history.forward()

// 前進一步(等同瀏覽器前進按鈕)
window.history.forward();

方法3:window.history.go()

// 后退兩步
window.history.go(-2);

// 前進三步
window.history.go(3);

// 刷新當前頁(等同F(xiàn)5)
window.history.go(0);

3. 修改歷史記錄(無刷新跳轉(zhuǎn))

方法:window.history.pushState() / replaceState()

// 添加歷史記錄(不觸發(fā)頁面跳轉(zhuǎn))
window.history.pushState({page: 1}, 'Title 1', '/page1');

// 替換當前歷史記錄
window.history.replaceState({page: 2}, 'Title 2', '/page2');
  • 參數(shù)說明

    • state:關(guān)聯(lián)的狀態(tài)對象(可通過history.state讀取)

    • title:大多數(shù)瀏覽器忽略此參數(shù)

    • url:新的相對或絕對路徑(需同源)

  • 適用場景:單頁應用(SPA)路由控制。

4. 監(jiān)聽導航事件

// 監(jiān)聽前進/后退(配合pushState使用)
window.addEventListener('popstate', (event) => {
  console.log('當前狀態(tài):', event.state);
});

// 監(jiān)聽hash變化
window.addEventListener('hashchange', () => {
  console.log('Hash變?yōu)?', window.location.hash);
});

5. 完整示例:帶狀態(tài)管理的導航

// 添加歷史記錄并跳轉(zhuǎn)(無刷新)
document.getElementById('btn').addEventListener('click', () => {
  const state = { userId: 123 };
  window.history.pushState(state, '', '/profile');

  // 動態(tài)更新頁面內(nèi)容(模擬SPA)
  document.body.innerHTML = `<h1>用戶 ${state.userId} 的主頁</h1>`;
});

// 處理后退按鈕
window.addEventListener('popstate', (event) => {
  if (event.state) {
    document.body.innerHTML = `<h1>用戶 ${event.state.userId} 的主頁</h1>`;
  }
});

注意事項

  • 同源策略

    • location.href 可跨域跳轉(zhuǎn),但 pushState() 的 URL 必須同源。

  • SEO影響

    • 使用 pushState() 時需配合服務端渲染,否則搜索引擎無法抓取。

  • 瀏覽器兼容性

    • pushState() 和 replaceState() 不支持 IE9 及以下。

  • 安全限制

    • 某些瀏覽器會阻止 window.open() 在非用戶觸發(fā)的代碼中執(zhí)行(如異步回調(diào))。

方法對比

方法是否添加歷史記錄是否刷新頁面典型用途
location.href??普通跳轉(zhuǎn)
location.replace()??禁止回退的跳轉(zhuǎn)
history.back()-?模擬瀏覽器后退
history.pushState()??SPA路由
window.open()??/?新標簽頁打開

根據(jù)你的需求選擇合適的方法!

總結(jié)

到此這篇關(guān)于js控制瀏覽器前進、后退、頁面跳轉(zhuǎn)詳細方法和示例的文章就介紹到這了,更多相關(guān)js控制瀏覽器前進后退頁面跳轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS應用正則表達式轉(zhuǎn)換大小寫示例

    JS應用正則表達式轉(zhuǎn)換大小寫示例

    這篇文章主要介紹了JS應用正則表達式轉(zhuǎn)換大小寫,以首字母大寫,其它字母小寫為例,喜歡的朋友可以參考下
    2014-09-09
  • 使弱類型的語言JavaScript變強勢

    使弱類型的語言JavaScript變強勢

    Javascript (ECMA Script)是一種弱類型的語言.這并不意味著它沒有數(shù)據(jù)類型,只是變量或者Javascript對象屬性不需要一個特定類型的值分配給它或者它始終使用相同的值.Javascript中的變量同樣支持自由類型轉(zhuǎn)換成為適用(或者要求)的內(nèi)容以便于使用.
    2009-06-06
  • JavaScript 中實現(xiàn) use strict的方法及優(yōu)勢

    JavaScript 中實現(xiàn) use strict的方法及優(yōu)勢

    本教程將討論JavaScript中的use strict特性,在這里,我們將通過不同的示例了解如何在JavaScript代碼語句中創(chuàng)建和執(zhí)行use strict關(guān)鍵字,需要的朋友可以參考下
    2023-09-09
  • 你不知道的Git?log還有這種用法

    你不知道的Git?log還有這種用法

    這篇文章主要為大家介紹了你不知道的Git?log竟然還有這種用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • javascript靜態(tài)的url如何傳遞

    javascript靜態(tài)的url如何傳遞

    javascript靜態(tài)的url如何傳遞...
    2007-05-05
  • JavaScript自動生成24小時時間區(qū)間

    JavaScript自動生成24小時時間區(qū)間

    這篇文章主要介紹了JavaScript自動生成24小時時間區(qū)間,就以時間區(qū)間為字符串展開主題香瓜內(nèi)容,需要的朋友可以參考一下
    2022-06-06
  • 微信小程序slider組件使用詳解

    微信小程序slider組件使用詳解

    這篇文章主要為大家詳細介紹了微信小程序slider組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JS動態(tài)添加元素及綁定事件造成程序重復執(zhí)行解決

    JS動態(tài)添加元素及綁定事件造成程序重復執(zhí)行解決

    這篇文章主要給大家介紹了關(guān)于JS動態(tài)添加元素及綁定事件造成程序重復執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • 淺析JavaScript中回調(diào)地獄與asyn函數(shù)和await函數(shù)原理

    淺析JavaScript中回調(diào)地獄與asyn函數(shù)和await函數(shù)原理

    這篇文章主要介紹了JavaScript中回調(diào)地獄與asyn函數(shù)和await函數(shù)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • ES6中export?default和export之間的區(qū)別詳解

    ES6中export?default和export之間的區(qū)別詳解

    export和export?default都是es6語法中用來導出組件的,可以導出的文檔類型有(?數(shù)據(jù)、常量、函數(shù)、js文件、模塊等),下面這篇文章主要給大家介紹了關(guān)于ES6中export?default和export之間的區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2023-04-04

最新評論

密云县| 蓬安县| 齐河县| 安康市| 台安县| 南江县| 富锦市| 高州市| 土默特右旗| 延津县| 黎城县| 乌兰浩特市| 沾化县| 确山县| 德庆县| 湖南省| 万州区| 南开区| 麟游县| 洛南县| 荆门市| 瑞昌市| 浙江省| 玉龙| 淳化县| 大渡口区| 临武县| 崇明县| 交城县| 揭阳市| 兴义市| 温宿县| 武威市| 榕江县| 德安县| 格尔木市| 巨野县| 开化县| 乌审旗| 新田县| 教育|