4

我面临一个问题。我有一个网页,我使用后退按钮锚链接,使用的代码是ONCLICK="history.go(-1)". 同一页面有许多锚链接和相关部分。

当我转到包含后退按钮的页面并立即单击后退按钮时,后退按钮可以正常工作。

如果我转到包含后退按钮的页面,然后点击指向同一页面中某个部分的锚链接,然后点击后退按钮,那么它永远不会转到上一个网页,而是转到该部分的 url。

4

3 回答 3

2

通过新的 History API,您可以操纵浏览器历史记录

History.js可以帮助您以跨浏览器的方式实现这一目标。

我很快创建了一个小小提琴来说明它的工作原理并使用 jQuery 进行事件处理(这不是生产代码,只是一个演示,在我的 Chrome 中工作)。

$('.anchor').click(function () {
    history.replaceState({}, '', this.href);
});
于 2012-05-17T12:43:55.840 回答
1

如果是这样,您可以使用 javascript 通过简单地使用这一行来解决这个问题。

使用history.go()JavaScript 函数如下:

<a href="javascript:window.history.go(-1);">Go back</a>
于 2012-06-25T10:37:04.887 回答
0

也许您可以尝试一个计数器来计算“部分”链接被点击的次数

也许是这样的(使用 jQuery,但也许有好心人会去把这段代码改成漂亮的纯 JavaScript):

var count = 0;
var historyValue = -1;
$(".sectionlinks").click(function () {
    ++count;
    window.historyValue = -(count + 1);
})​

你所有的部分链接都有一个sectionlinks类。

然后你可以在你的反向链接上做:

<a onclick="history.go(historyValue)">My Back Link</a>

请参阅此小提琴的演示:http: //jsfiddle.net/RRcyF/2/

于 2012-05-17T15:08:24.087 回答