繁体   English   中英

history.go()如何从window.history获取特定访问页面URL的索引?

[英]history.go() how to get the index of a specific visited page url from window.history?

我有一个具有按钮的Web应用程序,如果单击该按钮将转到特定的历史记录。 我听说只有IE支持history.go(url),但其他浏览器仅接受数字值。 就我而言,history.go()仅会转到特定页面,例如http://localhost:54187/Products/Create 即使用户单击该按钮导航到其他页面,它仍将进入历史记录的“创建”页面。 我需要history.go,因为它等效于前后浏览器。 我无法使用window.location或location.href,因为我的应用程序要求填充的数据仍必须与history.go完全一样。 如果用户总共加载26个页面,我将如何知道这26个页面中的哪个是创建页面,以便能够进行history.go(createIndex)? window.history.length给出26,但不公开该URL。

请帮助我如何解决我的问题。

JavaScript和HTML

<script type="text/javascript">
    $(document).ready(function () {
    $('#btnGoToCreate').click(function () {
        var createIndex = //how to know what's the index of 
        //http://localhost:54187/Products/Create from window.history?
        history.go(createIndex);
        });
    });
   </script>

<input type="button" value="Go to Last Entry" id="btnGoToCreate" />

由于安全/隐私原因,您无法阅读历史记录项目。 您只能访问以前的URL,可以使用以下内容阅读:

document.referrer

尽管您可以操纵浏览器的历史记录 ,但是这也不允许您转到用户历史记录中的特定页面。

添加一个计数器变量以保存索引。 该计数器可以存储在cookie/sessionStorage/localStorage
当用户导航到另一页时,将self自身加1,最后,当用户单击按钮时,您可以使用window.history.go(counter)。

顺便说一句,当用户刷新页面时,计数器可以自我加1,为避免发生此问题,您需要将时间戳传递到下一页,使用?timestamp=1231232123 ,并保存在cookie/sessionStorage/localStorage (如果时间戳在网址与cookie/sessionStorage/localStorage保存的网址不同,则计数器可以加上1。

这是我项目中的解决方案,希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM