HREF =#&34;#"浏览器情况和后退按钮

时间:2014-11-18 23:01:42

标签: javascript html href

大家好我在浏览器中遇到“后退”操作问题。当我点击链接时,它会将我带到我的“页面”(调用显示某个特定div的javascript函数)但是当我点击后退按钮时,它只是从网址中删除了#并且什么也没做。

这是具有该功能的代码:

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>';

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

任何想法如何解决?感谢

2 个答案:

答案 0 :(得分:2)

而不是使用href="#"使用href='javascript:void(0)'这会阻止您的网址更改并影响后退按钮

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>';

使用#更改存储在浏览器历史记录中的网址,因此大多数浏览器会将其视为网页更改。 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标记的行为,而无需担心链接默认行为。

答案 1 :(得分:0)

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