0

我想在新选项卡中打开一个链接并转到该链接中的特定 div。链接是:

http://paper.li/f-1333760510

#paper-window我想在单击链接时转到 div 。这是我尝试过的:

1.

<a href="http://paper.li/f-1333760510#paper-window" target="_blank" />

2

<a href="#" onclick="load-link(); return false" />

function load-link() {
    var w = window.open("http://paper.li/f-1333760510");
    w.location.href = "http://paper.li/f-1333760510#paper-window";
} 
4

1 回答 1

1

链接看起来不错...但是您将 location.hash 与元素的 id 放在了一起...

OLD:您的锚标记绝对没问题:

<a href="http://paper.li/f-1333760510#paper-window" target="_blank">open me</a>
<a name="paper-window"></a>

导致#somethingurl 的一部分是指向该页面上某个锚点的跳转点,而不是指向 id

更新(关于您的评论,感谢你们所有人:))用于导航到片段标识符的 HTML5 规范确实说两者都可以工作......顺序是首先查找 id,然后查找具有属性名称的锚点(尽管为了向后兼容在 HTML5 中已弃用)

所以这意味着打开http://www.example.com#foo会导致搜索:

// check for an element with an id matching "foo"
<div id="foo"></div>

// if no element was found check for an anchor with that name (also backward compatibility)
<a name="foo"></a>

// compare location.hash with "top"
// would jump to the top of the page if it matches
于 2012-04-30T10:18:42.273 回答