<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JS之變更URL的傳參但不刷新頁(yè)面

      需求:變更URL的傳參但不刷新頁(yè)面

      代碼如下:

      // 解析URL參數(shù)為對(duì)象
      function getUrlParams() {
        const params = {};
        const search = window.location.search.substring(1);
        if (search) {
          search.split('&').forEach(pair => {
            const [key, value] = pair.split('=');
            if (key) {
              params[key] = decodeURIComponent(value || '');
            }
          });
        }
        return params;
      }
      
      // 將參數(shù)對(duì)象轉(zhuǎn)換為URL查詢(xún)字符串
      function paramsToQueryString(params) {
        const pairs = [];
        for (const key in params) {
          if (params.hasOwnProperty(key) && params[key] !== undefined) {
            pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`);
          }
        }
        return pairs.length ? `?${pairs.join('&')}` : '';
      }
      
      // 更新URL參數(shù)(保留歷史記錄)
      function updateUrlParams(newParams, shouldReplace = false) {
        // 獲取當(dāng)前參數(shù)
        const currentParams = getUrlParams();
        
        // 合并新參數(shù)到當(dāng)前參數(shù)
        const updatedParams = { ...currentParams, ...newParams };
        
        // 構(gòu)建新的URL
        const newUrl = `${window.location.pathname}${paramsToQueryString(updatedParams)}${window.location.hash}`;
        
        // 更新URL而不刷新頁(yè)面
        if (shouldReplace) {
          // 替換當(dāng)前歷史記錄
          window.history.replaceState(updatedParams, '', newUrl);
        } else {
          // 添加新的歷史記錄
          window.history.pushState(updatedParams, '', newUrl);
        }
        
        return updatedParams;
      }
      
      // 示例用法
      // 添加或修改參數(shù),保留歷史記錄
      updateUrlParams({ page: '2', sort: 'price' });
      
      // 替換參數(shù),不保留歷史記錄
      updateUrlParams({ filter: 'active' }, true);
      
      // 移除參數(shù)(設(shè)置為undefined)
      updateUrlParams({ sort: undefined });
      
      // 監(jiān)聽(tīng)歷史記錄變化
      window.addEventListener('popstate', (event) => {
        console.log('URL參數(shù)變化:', event.state);
        // 在這里可以根據(jù)新的參數(shù)更新頁(yè)面內(nèi)容
      });

      這種方法非常適合單頁(yè)應(yīng)用 (SPA),可以在不刷新頁(yè)面的情況下更新 URL 狀態(tài),同時(shí)保持瀏覽器的前進(jìn) / 后退功能正常工作。

      使用 popstate 事件監(jiān)聽(tīng)用戶(hù)通過(guò)后退 / 前進(jìn)按鈕導(dǎo)致的 URL 變化

      posted @ 2025-09-08 10:56  羅毅豪  閱讀(20)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 18禁裸乳无遮挡啪啪无码免费| 国产午夜一区二区在线观看| 精品亚洲成A人在线观看青青| 亚洲中文字幕无码中字| 伊人大杳焦在线| 日本高清一区免费中文视频| 欧美成人午夜性视频| 亚洲欧洲精品日韩av| 亚洲狠狠婷婷综合久久久| 国产AV影片麻豆精品传媒| 久青草国产综合视频在线| 好爽毛片一区二区三区四| 狠狠色狠狠色综合| 怡红院一区二区三区在线| 中文字幕精品无码一区二区| 91福利一区福利二区| 日本三级香港三级三级人!妇久 | 久久AV中文综合一区二区| аⅴ天堂国产最新版在线中文| 久久综合亚洲色一区二区三区| 在线人人车操人人看视频| 日本三级香港三级三级人妇久| 久久精品免视看成人国产| 嫩草成人AV影院在线观看| 莫力| 亚洲精品国男人在线视频| 国产亚洲精品成人aa片新蒲金 | 中文字幕日韩国产精品| 狠狠色丁香婷婷综合尤物| 亚洲一区av无码少妇电影| 国产AV无码专区亚洲AV漫画| 亚洲一区精品视频在线| 亚洲一区二区三区蜜桃臀| 99热这里只有成人精品国产 | 亚洲欧美综合人成在线| 亚洲中文久久久精品无码| 亚洲av日韩av一区久久| 亚洲欧洲一区二区三区久久| 欧美喷潮最猛视频| 人妻少妇精品系列一区二区| 精品一区二区三区四区激情|