首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何链接到直到Javascript创建了锚标记才存在的锚标记?

如何链接到直到Javascript创建了锚标记才存在的锚标记?
EN

Stack Overflow用户
提问于 2013-09-10 03:09:59
回答 1查看 548关注 0票数 2

我有一个页面,它有一组<div>元素,每个元素都有一个与其相关联的锚标记。看起来是这样的:

代码语言:javascript
复制
<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生成的,所以直到页面创建之后它们才存在。当我创建这样的链接时:

代码语言:javascript
复制
http://www.mywebsite.com/mypage.html#anchor-2

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

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

从本质上讲,生成HTML的Javascript如下所示:

代码语言: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;

      }
    });
  });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-10 03:13:39

在创建元素之后,您可以:

代码语言:javascript
复制
location.hash = "#anchor-2";

或者使用scrollIntoView

代码语言:javascript
复制
element = document.getElementById('your_element-id');
element.scrollIntoView();

通过执行以下操作,从url获取散列值:

代码语言:javascript
复制
var hashVal = window.location.hash.substr(1);
//then jump to that hash
location.hash = "#" + hashVal;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18710137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档