我在我的网页中使用History.js。它工作正常,但是当用户点击页面上的面包屑直接进入第一页时,即没有点击浏览器后退按钮,History.js 堆栈不会被清除并且没有按下回第一页上的按钮无法正常工作。有没有办法可以清除 History.js 堆栈。在 Html5 历史 API 中我会这样做history.go(-(history.length - 1));
,但是当使用 History.js 时History.length
总是给我 0,即使我跟随面包屑并跳过了一些后退按钮点击。
问问题
13527 次
4 回答
2
多诺万的回答很好,但对我来说不起作用。backlength 索引太高,因此命令 history.go(-Backlen) 将被忽略。
此解决方案适用于我的情况:
var backlen = history.length - 1;
history.go(-backlen); // Return at the beginning
history.replaceState({}, null, 'your relative url');
于 2014-11-11T12:30:23.600 回答
0
我不知道直接答案,但你可以试试window.location.replace(url);
。
引用另一篇文章:使用 replace() 后,当前页面将不会保存在会话历史记录中,这意味着用户将无法使用后退按钮导航到它 在 Javascript 中,我如何“清除”后退(历史-1)?
于 2013-11-05T09:03:26.947 回答
0
这是 History.js 的等价物。
var urlPath = "index.html";
var response = { "html": htmlpage.toString() };
var currentIndex = History.getCurrentIndex();
// Return at the beginning
if( currentIndex > 0 )
History.go( -currentIndex );
//pushState will clear forward history
History.pushState( response , null, urlPath );
于 2014-10-12T18:50:11.077 回答