href=“#” 和浏览器情况下的后退按钮

href="#" and back button on browser situation

本文关键字:情况下 按钮 浏览器 href      更新时间:2023-09-26

嗨,伙计们,我在浏览器中的"后退"操作有问题。当我单击链接时,它会将我带到我的"页面"(调用显示某些特定div 的 javascript 函数),但是当我单击后退按钮时,它只是从 url 中删除 #,什么也不做。

这是具有该函数的代码:

html += '<p><a href="#" title="' + places[i]['formatted_address'] + '" onclick="select_business(' + i + ');return true;">' +  places[i]['name'] + '</a><br/>' +  places[i]['formatted_address'] + '<br/>' +  places[i]['phone_number'] + '</p>';

所以网址现在是:...列表.html?商店=29#当我按下后退按钮时,它只是从 URL 中删除"#"并保持在同一页面上(显示相同的div)

有什么想法可以解决这个问题吗?谢谢

不要使用href="#"使用href='javascript:void(0)' 这将阻止您的 URL 更改和影响后退按钮

html += '<p><a href="javascript:void(0)" title="' + places[i]['formatted_address'] + '" onclick="select_business(' + i + ');return true;">' +  places[i]['name'] + '</a><br/>' +  places[i]['formatted_address'] + '<br/>' +  places[i]['phone_number'] + '</p>';

使用该#会更改存储在浏览器历史记录中的URL,因此大多数浏览器会将其计为页面更改。 javascript:void(0)没有这种效果,并提供了一种在HTML中设置不起作用的a标记的便捷方法

正如用户 skobaljic 在下面的评论中指出的那样,您也可以保留#并从函数中返回 false:

html += '<p><a href="#" title="' + places[i]['formatted_address'] + '" onclick="select_business(' + i + ');return false;">' +  places[i]['name'] + '</a><br/>' +  places[i]['formatted_address'] + '<br/>' +  places[i]['phone_number'] + '</p>';

请注意,通常如果您使用的是没有 href 值的锚标记,您可以轻松地替换 span 或其他一些内联元素,而不必担心这种问题。您可以使用 css 模拟a标记的行为,而不必担心链接的默认行为。

尝试使用 href="javascript:void(0)" 看看它是否有效。而不是 href="#"