通常,您可以在页面上指定锚点,例如" index.html"代码如:
<a href="#anchor">Link Text</a>
然后,您可以在显示页面时跳转到该锚点,方法是将其包含在路径中:
http://example.com/index.html#anchor
我正在开发一个使用Yesod Haskell框架的登录页面,并希望将此功能集成到我的目标网页中。
目前我的导航栏顶部有几个链接。导航栏使用hamlet指定为:
<div #navbar .collapse.navbar-collapse>
<ul .nav.navbar-nav>
<li :Just HomeR == mcurrentRoute:.active>
<a href=@{HomeR}>_{MsgHome}
请注意,href是使用&#34; HomeR&#34;指定的。 &#34; HOMER&#34;在Yesode&#34; config / routes&#34;中定义列出该站点的所有路径的文件。 它看起来像:
/ HomeR GET
/settings SettingsR GET
这是我的问题。我可以将锚点添加到hamlet规范的一部分,然后修改标题栏上的href以跳转到该部分,例如:
<li :Just HomeR == mcurrentRoute:.active>
<a href=@{HomeR}#section0>_{MsgHome}
然而,由于几个原因,这很烦人。首先,锚点在编译时不像其他路径那样检查有效性。
其次,当前页面在导航栏上突出显示,代码为:
<li :Just HomeR == mcurrentRoute:.active>
通过这种方法,我可以突出显示单个页面,但不能突出显示页面中的各个锚点。
有没有办法在Yesod config / routes文件中插入安全锚点。或者是否只能拥有包含实际页面的路线。这将允许跳转到导航栏中的页面部分,然后突出显示单击的部分。如果这不可能,有没有更好的方法来处理yesod中的页面锚点?