如何在树枝中获取当前 anchor/_fragment
How to get the current anchor/_fragment in twig
我有一个包含 3 个锚点的页面(名为 a、b 和 c)
当我访问此页面时,我可以
- http:///local/personne/1#a
- http:///local/personne/1#b
- http:///local/personne/1#c
如您所想,我的页面显示了一些人员数据,而且我还有一个快速导航器可以导航到下一个用户。
我希望这个快速导航器保留当前锚点(或者至少是页面加载的锚点)
我知道 symfony 中的“_fragment”,我认为它可以用于我的 'at least' 解决方案
<a href="{{ path('next_personne', {'id': personne.id, '_fragment': 'TODO get current fragment here'}) }}">
{{ personne.name }}
</a>
所以如果我们访问
- http://local/personne/1#a ==> http://local/personne/2#a
- http://local/personne/1#b ==> http://local/personne/2#b
- http://local/personne/1#c ==> http://local/personne/2#c
如果可能的话,我想实施的解决方案:
如果我们使用 http:///local/personne/1#a 访问该页面,它将为下一个人呈现 url 作为 http://local/personne/2#a。如果我们单击使锚点变为 b,'next' 按钮的 url 也会变为 b。我想这需要一些 JS。
所以基本上如果你知道如何在 twig 或 / 和 JS 中获取当前锚点,它可能会解决我的问题。
所以最后,正如DarkBee所说,似乎只有JS可以解决这个问题。
并且 Jquery 提供了一些东西来轻松地做到这一点(参见 https://developer.mozilla.org/fr/docs/Web/API/WindowEventHandlers/onhashchange):
<script type="text/javascript">
function changeHash(){
$('.add-fragment').each(function () {
let _fragment = window.location.hash.substr(1);
let href = $(this).attr('href').split('#')[0];
$(this).attr('href', href+'#'+_fragment);
})
}
$(document).ready(function () {
changeHash();
window.addEventListener("hashchange", function(){changeHash();}, false);
});
</script>
基本上,在更改时,我使用 class 添加片段将哈希添加到所有链接,并在更改时重做相同的工作。
这解决了我的整个问题。
我有一个包含 3 个锚点的页面(名为 a、b 和 c) 当我访问此页面时,我可以
- http:///local/personne/1#a
- http:///local/personne/1#b
- http:///local/personne/1#c
如您所想,我的页面显示了一些人员数据,而且我还有一个快速导航器可以导航到下一个用户。
我希望这个快速导航器保留当前锚点(或者至少是页面加载的锚点)
我知道 symfony 中的“_fragment”,我认为它可以用于我的 'at least' 解决方案
<a href="{{ path('next_personne', {'id': personne.id, '_fragment': 'TODO get current fragment here'}) }}">
{{ personne.name }}
</a>
所以如果我们访问
- http://local/personne/1#a ==> http://local/personne/2#a
- http://local/personne/1#b ==> http://local/personne/2#b
- http://local/personne/1#c ==> http://local/personne/2#c
如果可能的话,我想实施的解决方案:
如果我们使用 http:///local/personne/1#a 访问该页面,它将为下一个人呈现 url 作为 http://local/personne/2#a。如果我们单击使锚点变为 b,'next' 按钮的 url 也会变为 b。我想这需要一些 JS。
所以基本上如果你知道如何在 twig 或 / 和 JS 中获取当前锚点,它可能会解决我的问题。
所以最后,正如DarkBee所说,似乎只有JS可以解决这个问题。
并且 Jquery 提供了一些东西来轻松地做到这一点(参见 https://developer.mozilla.org/fr/docs/Web/API/WindowEventHandlers/onhashchange):
<script type="text/javascript">
function changeHash(){
$('.add-fragment').each(function () {
let _fragment = window.location.hash.substr(1);
let href = $(this).attr('href').split('#')[0];
$(this).attr('href', href+'#'+_fragment);
})
}
$(document).ready(function () {
changeHash();
window.addEventListener("hashchange", function(){changeHash();}, false);
});
</script>
基本上,在更改时,我使用 class 添加片段将哈希添加到所有链接,并在更改时重做相同的工作。
这解决了我的整个问题。