Javascript 从<;链接rel=短链接>;在当前文档的标题中

Javascript 从<;链接rel=短链接>;在当前文档的标题中,javascript,dom,Javascript,Dom,给定以下HTML: <html> <head> <link href="http://example.com/g/8c" rel="shortlink" /> </head> <body></body> </html> 如何使用javascript检索链接,rel=shortlink中href=”“的内容?我不知道头中的这些项目是否可以在DOM中访问 头部标记可能包含更多链接标记,用于c

给定以下HTML:

<html>
  <head>
    <link href="http://example.com/g/8c" rel="shortlink" />
  </head>
  <body></body>
</html>

如何使用javascript检索
链接,rel=shortlink
中href=”“的内容?我不知道头中的这些项目是否可以在DOM中访问


头部标记可能包含更多链接标记,用于css等资产。head标记可能包含多个链接短链接(根据HTML5“规范”),在这种情况下,只需选择第一个链接即可。

如果使用jQuery,我会:

var link_href = $('link', 'head').attr('href');

我将使用jQuery执行此操作:

$('link[rel=shortlink]').eq(0).attr('href');
其中:

  • $('link[rel=shortlink]')
    选择适当的元素
  • eq(0)
    选择其中的第一个
  • attr('href')
    选择适当的属性

您可以使用
document.head
获取head,然后使用
getElementsByTagName
获取
链接
标记

var links = document.head.getElementsByTagName('link');
for(var link in links){
    if(links.hasOwnProperty(link)){
        var l = links[link];
        if(l.rel === 'shortlink'){
          console.log(l.href);
        }
    }
}
注意:
document.head
可能不适用于所有浏览器(我的意思是,它可能不适用于IE)。如果不起作用,请尝试以下方法:

document.head = document.head || document.getElementsByTagName('head')[0];

只是好奇,你为什么要这样做?对于“共享/推特此页面”功能,我想传递自定义的短链接,而不是
document.URL
,它将被一些任意的第三方短链接器缩短。你在使用jQuery吗?目前所有的答案似乎都是jQuery。我有jQuery,但出于可移植性的原因,我宁愿编写独立于jQuery的特定函数。为什么要否决?我知道我问过javascript,但由于在普通的ol js和jQuery中的总体思路是一样的,所以下一票似乎反应过度,不是吗?我假设下一票是下一票,因为他从来没有说过他在使用jQuery,不应该只对一个任务使用它。虽然您的示例适用于我给定的HTML,但如果存在其他链接标记,它将失败,比如CSS。这个问题的其他答案确实考虑到了这一点。