当前位置: 首页 > news >正文

如何利用fortran语言建设网站浦东新区网站优化公司

如何利用fortran语言建设网站,浦东新区网站优化公司,wordpress 多站点设置,怎么做兼职网站在 HTML5 的 History API 中,pushState 和 replaceState 方法也可以接受一个 state 对象作为参数。这些方法允许你在改变浏览器路由时不重新加载页面,并且可以附加一些自定义数据。 state 返回在 history 栈顶的 任意 值的拷贝。 let currentState h…

在 HTML5 的 History API 中,pushState 和 replaceState 方法也可以接受一个 state 对象作为参数。这些方法允许你在改变浏览器路由时不重新加载页面,并且可以附加一些自定义数据。

state

返回在 history 栈顶的 任意 值的拷贝。

let currentState = history.state;

结合router.push 方法来实现导航并传递状态

    router.push({path: '/xxx', state: {userId: '123', token: 'abc123'}});

存储和修改的状态对象

pushState

向浏览器的会话历史栈增加了一个条目。

pushState(state, unused)
pushState(state, unused, url)
  1. state:一个JavaScript对象,表示新的历史状态。这个对象可以包含任意的数据,用于保存页面的状态信息。
  2. title:新的历史记录的标题,但大多数浏览器忽略这个参数。
  3. url:新的历史记录的URL,可以是相对URL或绝对URL,但不能跨域。
history.pushState({page: 1}, "Page 1", "/page1");
// 这将添加一个新的历史记录,URL为/page1,状态对象为{page: 1}。
// 假设当前的 history.state 是这样的
const currentState = history.state || {};// 获取时间的值
const Time = time.value;// 创建新的 state 对象
const newState = {...currentState,  // 保留当前的 stateTime: Time ,
};// 使用 history.pushState 更新 state 并添加新条目
history.pushState(newState, document.title);

replaceState

使用状态对象和 URL 作为参数来修改当前的历史记录条目。

replaceState(state, unused)
replaceState(state, unused, url)
  1. state:一个JavaScript对象,表示要替换的历史状态,状态对象可以是 null
  2. title:新的历史记录的标题,但大多数浏览器忽略这个参数。
  3. url:替换后的URL,不能跨域。

使用demo

// 假设当前的 history.state 是这样的
const currentState = history.state || {};// 获取时间的值
const Time = time.value;// 创建新的 state 对象
const newState = {...currentState,  // 保留当前的 stateTime: Time ,
};// 使用 history.replaceState 更新 state 而不改变 URL
history.replaceState(newState, document.title);

锚点导航附带信息

function scrollToSection(sectionId, additionalData) {window.location.hash = sectionId;// 存储额外的状态信息window.sessionStorage.setItem(`section-${sectionId}-state`, JSON.stringify(additionalData));
}scrollToSection('#about-us', { timestamp: Date.now(), scrollPosition: window.scrollY });// 监听 hashchange 事件以恢复状态
window.addEventListener('hashchange', () => {const currentHash = window.location.hash.substring(1);const storedState = sessionStorage.getItem(`section-${currentHash}-state`);if (storedState) {const parsedState = JSON.parse(storedState);console.log('Restoring state for section:', currentHash, parsedState);// 执行相应的操作}
});

更多学习

History:pushState() 方法 - Web API | MDN

History:replaceState() 方法 - Web API | MDN

http://www.yayakq.cn/news/799726/

相关文章:

  • 珠海网站建设培训支付网站建设的分录
  • 滨州淄博网站建设河源建筑设计企业名录黄页
  • seo中文意思是厦门seo推广外包
  • net网站开发手机网站阿里云自助建站和华为云自助建站
  • 惠来网站建设深圳市公司网站建设
  • 网站宝 添加二级域名uniapp商城源码
  • 购物网站备案网站怎么做流量统计
  • 河口建设局网站汕头网站建设优化
  • 深圳网站建设 设计科技有限公司找人做网站注意事项
  • 在闲鱼可以做网站吗wordpress 5.11中文
  • 什么叫做响应式网站建筑工程网站导航
  • 织梦网站图片怎么修改不了浙江中联建设集团网站
  • 电商网站建设 问题与解决方案cmseasy做网站简单吗
  • 农业局网站建设方案廉政网站建设
  • 大连做公司网站哪家好东莞市公共资源网
  • 国外的电商网站网站功能配置
  • 关系的网站全球展览设计的图片
  • 萍乡做网站的公司单页网站排名优化
  • 望城经济建设开区门户网站建站公司杭州
  • 网站开发公司对比广州网站建设优化方案
  • 济宁做网站哪家比较好什么是网站建设需求
  • 10大免费软件下载网站无锡网络推广
  • 网站创意策划案创意设计活动加计扣除
  • 网站开发文档docseo谷歌
  • 西宁网站建设搜q479185700一个小程序开发费用
  • 购物网站导航模板中源建设有限公司网站
  • 网站速度慢wordpress网络规划
  • html5高端网站建设软件平台开发流程
  • 襄阳蒂凯网络网站建设小程序网站开发如何报价单
  • 做网站公司职务网站注册