2012-04-09 65 views
1

#和!的作用是什么?在href值?锚标记的href值中的特殊符号

<a href="#!${pageContext.request.contextPath}/dic/users/home.ct" rel="home"> 
+2

需要更多信息,看起来像你正在使用某种模板引擎。你能链接到你看到这个代码的地方吗? – nak 2012-04-09 05:28:48

+0

@nak是啊,几乎看起来像一个错误,它打算由服务器翻译成东西。 – McGarnagle 2012-04-09 05:30:03

回答

1

#指向一个锚(<a name="xx"><element id="xx">

的爆炸可能是用于ajax-crawling兼容性。合并的#!用于向Googlebot表明您的站点支持该方案。

此链接方案应该只能使用javascript,而不能打印到HTML。在这种情况下,页面实际上并没有一个名为!contextPath的锚点,但应该有一个页面/${pageContext.request.contextPath}/dic/users/home.ct

1

enter image description here它已成为Google确定的标准,可确保一致性并使ajax url可被抓取。

http://code.google.com/web/ajaxcrawling/docs/getting-started.html

我相信他们正在使用history.pushState。您可以在控制台中执行history.back(),它会将您引导回页面。

顺便说一句,“!”用于消除空散列的情况。 “http://url#”将使浏览器滑动到顶部。

+0

当你需要类似链接的视觉效果而不是链接时(你会使用'href ='#''或'javascript:void(0)'),你应该通过CSS和'tabindex = 0'来添加它,不需要一个未使用的锚点。 – 2012-04-09 05:42:54