Javascript 如何在twig中获取当前锚点/_片段
我有一个带有3个锚的页面(名为a、b和c) 当我访问此页面时,我可以Javascript 如何在twig中获取当前锚点/_片段,javascript,symfony,twig,anchor,Javascript,Symfony,Twig,Anchor,我有一个带有3个锚的页面(名为a、b和c) 当我访问此页面时,我可以 http://local/personne/1#a http://local/personne/1#b http://local/personne/1#c 您可以想象,我的页面显示一些personne数据,我还有一个快速导航器来导航到下一个用户 我希望这个快速导航器保持当前的锚(或者至少是页面加载时的锚) 我知道symfony中的“_fragment”内容,我认为它可以用于我的“至少”解决方案 <a href=&qu
- http://local/personne/1#a
- http://local/personne/1#b
- http://local/personne/1#c
<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
因此,基本上,如果你知道如何在twig或/和JS中获得当前的锚,它可能会解决我的问题。所以最后,正如DarkBee所说,似乎只有JS可以解决这个问题 Jquery提供了一些东西,可以轻松做到这一点(请参阅):
函数changeHash(){
$('.add fragment')。每个(函数(){
让_fragment=window.location.hash.substr(1);
让href=$(this.attr('href').split('#')[0];
$(this.attr('href',href+'#'+\u片段);
})
}
$(文档).ready(函数(){
changeHash();
addEventListener(“hashchange”,function(){changeHash();},false);
});
基本上,在更改时,我使用类add fragment将哈希添加到所有链接,在更改时,我重做相同的工作
这解决了我的整个问题。因此,正如DarkBee所说,似乎只有JS可以解决这个问题 Jquery提供了一些东西,可以轻松做到这一点(请参阅):
函数changeHash(){
$('.add fragment')。每个(函数(){
让_fragment=window.location.hash.substr(1);
让href=$(this.attr('href').split('#')[0];
$(this.attr('href',href+'#'+\u片段);
})
}
$(文档).ready(函数(){
changeHash();
addEventListener(“hashchange”,function(){changeHash();},false);
});
基本上,在更改时,我使用类add fragment将哈希添加到所有链接,在更改时,我重做相同的工作
这解决了我的全部问题。你没有。URL片段不会发送到服务器。你需要求助于JavaScriptor,也许这对你有帮助。URL片段不会发送到服务器。你需要求助于Javascript,也许可以帮你
<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>