我想从Jquery的网站上获取一个favicon的链接。我只是使用$('link[rel="shortcut icon"]').attr('href');
,它运行正常。
但是......我并不总是有一条完整的道路。例如,我可以有像
这样的东西http://mywebsite.com/myicon.ico
或只是相对路径
/myicon.ico
我希望始终拥有完整路径,即使Url被编码为相对路径。有一个简单的解决方案吗?
我将其用作Google Chrome扩展程序中的内容脚本。
答案 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')