![](/img/trans.png)
[英]HtmlUnit webscraping Anchor tag with dropdown link that has JavaScript
[英]How can I link to an anchor tag that doesn't exist until the Javascript has created it?
我的页面有一组<div>
元素,每个页面都有一个与之关联的锚标记。 看起来像这样:
<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生成浏览器后,如何使浏览器移动到选定的定位器标签位置?
本质上,这是生成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";
element = document.getElementById('your_element-id');
element.scrollIntoView();
通过执行以下操作从url获取哈希值:
var hashVal = window.location.hash.substr(1);
//then jump to that hash
location.hash = "#" + hashVal;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.