最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • H5 之 History API

    正文概述 掘金(type)   2021-04-02   894
    • History 对象包含用户(在浏览器窗口中)访问过的 URL。
    • History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。
    • 允许操纵浏览器会话历史记录,即在当前页面所加载的选项卡或框架中访问的页面。

    length(只读)

    返回一个整数,该整数表示会话历史中元素的数目,包括当前加载的页。例如,在一个新的选项卡加载的一个页面中,这个属性返回 1。 例如有三个Html a,b,c,我们跳转a->b->c,那么c中的length就是3。

    a.html

    <a href="b.html">跳b</a>
    

    b.html

    <a href="b.html">跳c</a>
    

    c.html

    <script>
        console.log(window.history.length)
    </script>
    

    scrollRestoration

    允许Web应用程序在历史记录导航上显式设置默认滚动恢复行为。此属性可以是auto或manual。

    const scrollRestoration = history.scrollRestoration
    if (scrollRestoration === 'manual') {
      console.log('The location on the page is not restored, user will need to scroll manually.');
    }
    

    state (只读)

    浏览器在当前URL下给出的一个状态信息。如果没有使用history.pushState,history.replaceState触动过时,为默认值null

    back()

    该方法使浏览器在会话历史记录中后退一页。与调用具有相同的作用history.go(-1)。如果没有上一页,则此方法调用不执行任何操作。

    history.back()
    

    forward()

    在浏览器历史记录里前往下一页,用户可点击浏览器左上角的前进按钮模拟此方法,等价于 history.go(1)。

    history.forward()
    

    go()

    该方法从会话历史记录中加载特定页面。您可以使用它在历史记录中前后移动,具体取决于参数的值。

    history.go([delta])
    

    pushState()

    该方法将条目添加到浏览器的会话历史记录堆栈中。

    history.pushState(state, title [, url])
    

    state对象

    是一个 JavaScript 对象,它与创建的新历史记录条目相关联。每当用户导航到新状态时,popstate 都会触发事件,并且 state 事件的属性包含历史记录条目的状态对象的副本。 状态对象可以是任何可以序列化的对象。因为 Firefox 将状态对象保存到用户的磁盘,因此可以在用户重新启动浏览器后恢复它们,因此我们在状态对象的序列化表示强加了 640k 字符的大小限制。

    title

    Firefox 目前忽略了这个参数,虽然它可能在将来使用它。可以传入一个 null。

    URL

    此历史记录条目的 URL 由此参数指定。请注意,浏览器在调用后不会尝试加载此 URL,但可能会稍后尝试加载 URL,例如在用户重新启动浏览器之后。新 URL 不一定是绝对的;如果是相对的,则相当于当前 URL 进行解析。新 URL 必须与当前 URL 的源相同;否则,pushState() 将抛出异常。此参数可选,如果未指定,则将其设置为文档当前的 URL。

    const state = { 'page_id': 1, 'user_id': 5 }
    const title = ''
    const url = 'hello-world.html'
    
    history.pushState(state, title, url)
    

    replaceState()

    history.replaceState(stateObj, title, [url])
    

    stateObj

    状态对象是一个JavaScript对象,它与传递给该replaceState方法的历史记录条目相关联。状态对象可以是 null。

    title

    当前大多数浏览器都忽略此参数,尽管将来可能会使用它。在此处传递空字符串应该可以防止将来对方法的更改。或者,您可以为该州传递简短的标题。

    url

    可选的历史记录条目的URL。新网址必须与当前网址具有相同的来源;否则replaceState会引发异常。

    popstate

    需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back()或者history.forward()方法)

    window.addEventListener("popstate", function() {
       // 取出 设置好的 history.state 值,做判断
     });
    

    起源地下载网 » H5 之 History API

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元