当页面加载时,IE7会在我的网站主URL的末尾添加一个哈希标签。

4
在我的backbone应用程序中,当我在IE 7中加载它并键入url:http://mydomain.com/ - 加载主视图 - IE7会在结尾添加一个哈希标签:http://mydomain.com/# 这很奇怪,因为所有其他浏览器都没有这样做。
有什么想法吗?
还有一件事:
我硬编码了一个指向主视图的html链接:
<a href="#">main view</a>

在放置标签时使用hashtag好吗?还是应该在href中放置其他内容?

也许可以使用:javascript:void(0)


“#” 对于 URL 没有任何作用,除非页面上存在锚点。 - Sterling Archer
可能相关:https://dev59.com/tFTTa4cB1Zd3GeqPqkCS - woz
3个回答

2

'#'表示您已经着陆到了主页,如果您让它保持不变也没关系,因为backbone会始终在IE7中使用基于'#'的路由。

可能你正在使用Backbone.Router类来处理应用程序中的路由。Backbone在IE7中很好地为您处理了它。请查看backbone的navigate方法以获取更详细的使用方法。


2
Backbone这样做是因为IE是唯一不支持history.pushState的浏览器。Backbone在后台检查这一点,如果它在支持pushState的浏览器中加载,将使用它作为单页面路由。如果Backbone在不支持此功能的浏览器中加载,它会寻找另一种不重新加载页面就能修改浏览器历史记录的方法:hashchange。据我所知,Backbone立即将哈希添加到URL中,以便您知道它正在被使用。

0
将一个哈希标签放在页面上跳转到特定位置是一个好的实践。使用没有后续位置的哈希标签则不是。如果您想要一个链接跳转到您的主页,只需插入完整的URL,例如http://mydomain.org/,如果您想要跳回顶部,请在页面顶部指定一个锚点#top,并使用其代替#。使用javascript:void(0)是一个相当有争议的话题。一般来说,应该将JavaScript与HTML分开。
至于回答您的主要问题:只要您没有使用任何自定义逻辑来处理锚点,将#添加到URL中并不会有什么影响。如果您在文档中单击了一个#链接,它将重定向您到页面顶部。因此,如果您完全重新加载页面,您将会在顶部,因此,如果IE决定添加一个哈希标签,则不会有任何影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接