javascript - 如何链接到 Javascript 创建之前不存在的 anchor 标记?

标签 javascript html

我有一个页面,其中包含一组 <div>元素,每个元素都有一个与其关联的 anchor 标记。它看起来像这样:

<a name="anchor-0"></a>
<div id="div0">Some stuff</div>
<a name="anchor-1"></a>
<div id="div1">More stuff</div>
<a name="anchor-2"></a>
<div id="div2">Yet more stuff</div>

问题是这组<div><a>标签是由 Javascript 生成的,因此它们在页面创建之后才存在。当我创建这样的链接时:

http://www.mywebsite.com/mypage.html#anchor-2

...它加载页面但不会跳转到 anchor-2位置,仅在浏览器有时间执行生成它的 Javascript 之后一段时间才创建。

一旦 Javascript 生成了 anchor 标记,如何让浏览器移动到选定的 anchor 标记位置?


生成 HTML 的 Javascript 本质上是这样的:

function init() {
  gapi.client.setApiKey('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
  gapi.client.load('blogger', 'v2', function() {
    var request = gapi.client.blogger.posts.list({
      'blogId': 'xxxxxxxxxxxxxxxxxxxxxxxx',
      'fields': 'items(content,title)'
    });
    request.execute(function(response) {
    var main = document.getElementById("main");
    var anchor = 0;
      for (var i = 0; i < response.items.length; i++)
      {
        var Div = document.createElement("div")
        $(Div).append(response.items[i].title);
        $(main).append(Div);
        anchor = document.createElement("a");
        anchor.name = "anchor-" + anchor;
        anchor = anchor +1;

      }
    });
  });
}

最佳答案

创建元素后,您可以执行以下操作:

location.hash = "#anchor-2";

或使用scrollIntoView

element = document.getElementById('your_element-id');
element.scrollIntoView();

通过执行以下操作从 url 获取哈希值::

var hashVal = window.location.hash.substr(1);
//then jump to that hash
location.hash = "#" + hashVal;

关于javascript - 如何链接到 Javascript 创建之前不存在的 anchor 标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710137/

相关文章:

javascript - 显示 Google 图表的一半

php - 无法将数据上传到 wamp localhost 中的数据库

javascript - 在 Wordpress 中使用 Slicknav

javascript - 使用 Javascript 和 getElementById 显示 DIV

javascript - 如何动态设置emoji unicode

javascript - 来自两个函数的 Ajax 回调

javascript - Polymer Project 加载缓慢

php - 在 POST 上禁用滚动

python - 如何在 wx.Python 或其他 python gui 窗口中打开 HTML JavaScript 页面?

javascript - KnockoutJS对象不支持 'toFixed'