使用AJAX链接到页面上的HTML锚点

时间:2014-04-10 16:24:13

标签: html ajax url get anchor

尝试使用html锚点链接到页面的一部分时遇到问题。问题是我链接的页面有几个AJAX调用需要时间才能完成。这使我无法链接到锚点。

<a href="domain.com/view?id=<?=$article['id']?>#anchor">

应该链接到我的视图页面上的评论部分

//Non ajax content
<a id="anchor"></a>
<?php $this->widget('application.components.DisqusWidget', array('article' => $id));?> //The offending AJAX

如果我转到domain.com/view?id=123,请加载,然后将#anchor添加到我带到相应部分的网址。但是domain.com/view?id=123#anchor只会把我带到顶端。有解决方法吗?

2 个答案:

答案 0 :(得分:1)

在Ajax回调中,您可以添加

    location.href=location.hash;

所以它会在ajax调用结束后跳转。

答案 1 :(得分:1)

我猜你的Disqus小部件会在页面底部附加数据 只有这样,你的页面足够长,才能真正滚动到你的锚点。

解决问题的一种方法是将JavaScript处理程序(回调)附加到注释部分的加载函数,该函数将在AJAX请求完成后立即触发。
在该回调函数中,您可以触发滚动到您的锚点,如下所示:

window.location.hash = '#anchor';