Jquery:以完整路径获取favicon

时间:2013-03-05 09:39:54

标签: jquery google-chrome-extension path favicon

我想从Jquery的网站上获取一个favicon的链接。我只是使用$('link[rel="shortcut icon"]').attr('href');,它运行正常。

但是......我并不总是有一条完整的道路。例如,我可以有像

这样的东西
http://mywebsite.com/myicon.ico

或只是相对路径

/myicon.ico

我希望始终拥有完整路径,即使Url被编码为相对路径。有一个简单的解决方案吗?

我将其用作Google Chrome扩展程序中的内容脚本。

2 个答案:

答案 0 :(得分:8)

如果使用节点的href属性,则应始终获得绝对路径:

var url = $('link[rel="shortcut icon"]')[0].href;

或者:

var url = $('link[rel="shortcut icon"]').prop('href');

或者,在纯JavaScript中:

var url = document.querySelector('link[rel="shortcut icon"]').href;

答案 1 :(得分:0)

大多数站点在链接标记中没有rel的通用名称。 有些有

<link rel="icon" href="https://pages.ebay.com/favicon.ico">
<link rel="shortcut icon" href="https://cdn.sstatic.net/Sites/stackoverflow/img/favicon.ico?v=4f32ecc8f43d">

因此,如果在查询选择器中使用regex,那么与其匹配精确的rel标签更好,而不是

$("link:regex(rel, .*icon.*)").prop('href')

如果给出不匹配的伪类:regex异常,则可以使用此

$('link[rel~="icon"]').prop('href')