我正试图想出一种在不重新加载的情况下导航到同一页面内的HTML锚点的方法。现在我正在使用:
header("Location: #anchor_name");
问题在于重新加载页面。如果可以,我真的想避免使用JavaScript,但我不知道是否还有其他方法?
谢谢!
PS - 我知道我需要在重定向中使用完整的URI - 为简单起见,这里只是缩写。
答案 0 :(得分:2)
您可以使用js:
function scrollToAnchor_name(anchorName) {
location.hash = "#" + anchorName;
}
答案 1 :(得分:0)
在html中,使用<a href="#anchor_name">Click me</a>
答案 2 :(得分:0)
PHP是一种服务器端技术。因此,只能通过再次寻址服务器来实现必须对内容进行的任何更改(无论是在内容方面还是确定哪个部分是可见的)。本身(意思是:没有客户端脚本的帮助,如ajax调用),这将总是强制重新加载页面。在没有重新加载的情况下执行此操作的唯一方法是使用客户端脚本,然后需要JavaScript(如本页其他帖子中所述)。
答案 3 :(得分:0)
如果您的网站中包含jQuery,这里有一些我经常用于此目的的平滑代码:
function goToByScroll(id){
$('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
}
答案 4 :(得分:0)
您可以使页面的href包含锚点,例如“submit.php#form_top
”,并根据提交的内容输出该锚点与否。因此,当首次访问页面时,将没有form_top
锚点,它将仅显示在页面顶部,但对于后续调用(发布表单),它将跳转到锚点。
缺点是带有始终可见锚点的丑陋URL,如果你在没有锚点的情况下调用url它将无法工作(需要放置锚点并在需要时保留以供后续调用)。