[英]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.