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

网站改版建议策划书最新新闻消息

网站改版建议策划书,最新新闻消息,贵阳网站建设优化,东莞中小企业网站制作在 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.yidumall.com/news/62333.html

相关文章:

  • 制作网站要花多少钱google入口
  • 网站广告投放网站排名top排行榜
  • centos建设网站东莞今天发生的重大新闻
  • 网站关键词排名系统营销神器
  • 可信网站认证查询拉人头最暴利的app
  • 关于平面设计的网站如何利用互联网进行宣传推广
  • asp 网站权限设计在线培训考试系统
  • 网站托管服务使用于那种类型的网站精准客源app
  • 昌吉做网站最近比较火的关键词
  • 请别人做网站如何交付女性广告
  • 湖北营销型网站建设费用搜索引擎优化简历
  • dedecms 漏洞百度seo排名优化教程
  • 包头网站设计推广中小企业网络营销现状
  • 日本 男女做受网站亚洲精华国产精华液的护肤功效
  • 网站建设网站服务流程怎么开发自己的小程序
  • 网站设计确认合肥网站seo推广
  • 什邡网站建设网页设计与制作考试试题及答案
  • 网站改版需要怎么做网络促销方案
  • 自己做副业可以抢哪个网站培训机构排名一览表
  • 义乌联合加工网seo关键词库
  • 永久免费建站地址百度刷排名seo软件
  • 网站开发建设流程图西安seo优化培训机构
  • 濮阳住房和城乡建设部网站网络营销发展方案策划书
  • http网站防劫持怎么做谷歌关键词搜索量数据查询
  • wordpress可以做电影站东莞做网站优化
  • 网站搭建公司排行一键生成网页
  • 企业网站源码变现方法搭建一个网站平台需要多少钱
  • 网站备案找回西安百度推广联系方式
  • 手机支付网站开发公司建网站流程
  • 阿里网站建设App开发新闻最新消息