亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

想要為瀏覽器的后退按鈕設置一個事件處理程序,下一步.js

想要為瀏覽器的后退按鈕設置一個事件處理程序,下一步.js

慕工程0101907 2022-08-27 15:11:24
我有一個模式,在打開時將哈希推送到url,在瀏覽器后退按鈕單擊時,我想識別該事件,以便我可以切換模式狀態。關鍵是,由于我將其與next.js(服務器端渲染)一起使用,我將無法訪問窗口對象(如果我錯了,請糾正我)。所以我需要另一種方法來處理瀏覽器后退按鈕的事件。example.com/#modal
查看完整描述

2 回答

?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

要為您的案例添加一個實用示例來補充Artinium的答案,您可以使用 的 beforePopState 對會話歷史記錄導航的更改(后退/前進操作)采取行動,并確保它僅在離開當前頁面時發生。next/router


useEffect(() => {

    router.beforePopState(({ as }) => {

        if (as !== router.asPath) {

            // Will run when leaving the current page; on back/forward actions

            // Add your logic here, like toggling the modal state

        }

        return true;

    });


    return () => {

        router.beforePopState(() => true);

    };

}, [router]); // Add any state variables to dependencies array if needed.


查看完整回答
反對 回復 2022-08-27
?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

@Summy 我希望您的問題現在得到解決。如果沒有,你可以試試瀏覽器后退按鈕:- 下一步.js + React 返回上一頁 如果你想使用hashbang URL,你不能使用SSR,因為/#和/#/one是相同的路由服務器端,所以服務器沒有辦法知道要渲染什么,它需要發送一個基本的模板,讓客戶端填寫它, 在這種情況下,我認為將CRA或Parcel與React Router及其HashRouter一起使用是一個更好的選擇,這樣你就可以擁有一個索引.html并讓客戶端決定渲染什么。


查看完整回答
反對 回復 2022-08-27
  • 2 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號