我想滚动到渲染模板上的特定div。我知道我可以添加像#something
这样的锚点,但是我渲染模板,我无法更改网址。我怎么能这样做?
<div id="something">...</div>
def search():
...
return render_template('search.html') # should scroll to #something
答案 0 :(得分:5)
您无法对服务器的响应执行任何操作,但您可以在呈现的模板上添加一个小的JavaScript代码段,该代码段将页面滚动到您想要的位置。请参阅Element.scrollIntoView
或location.hash
。
# pass scroll if you want to scroll somewhere
return render_template('search.html', scroll='something')
<div id="something">
{% if scroll %}
<script>
document.getElementById('{{ scroll }}').scrollIntoView();
// or
document.location.hash = '#' + '{{ scroll }}';
</script>
{% endif %}
有关详细信息,请参阅How to scroll HTML page to given anchor?。
如果您要重定向,以便控制该网址,请参阅Link to a specific location in a Flask template。