PHP标题位置 - 移动到锚点而不重新加载

时间:2012-12-12 21:59:28

标签: php redirect header location anchor

我正试图想出一种在不重新加载的情况下导航到同一页面内的HTML锚点的方法。现在我正在使用:

header("Location: #anchor_name");

问题在于重新加载页面。如果可以,我真的想避免使用JavaScript,但我不知道是否还有其他方法?

谢谢!

PS - 我知道我需要在重定向中使用完整的URI - 为简单起见,这里只是缩写。

5 个答案:

答案 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它将无法工作(需要放置锚点并在需要时保留以供后续调用)。