使用 jQuery 更改所有外部链接
Change all external links using jQuery
我想更改我博客上的所有外部链接(此处为 blogspot,这就是我寻找 jQuery 代码的原因)而不更改我博客的 posting,因为我需要很多如果我这样做的话,工作量很大。
比如我的网站是example.com
。
我想将所有外部链接更改为
http://example.com/p/go.html?url=http://externallink.com
无需对我的博客进行任何更改 post。我没有任何想法可以开始。
已解决:https://gist.github.com/2342509谢谢大家:D 我只需要稍微改变一下。
在jQuery你可以试试:
// DOM ready
$(function(){
$('a[target="_blank"]').prop('href', 'http://example.com/p/go.html?url=http://externallink.com');
});
当然,只有当您在 HTML 中设置了 target="_blank"
property/attribute 并且您希望所有 link 都打开相同的 url.这个想法源于您希望在不同的 tab/window.
中自动打开外部 links
如果这不是必需的功能,您可以以类似的方式使用自定义 data-
属性。唯一的区别是您需要循环每个 link,并从中获取数据。
// DOM ready
$(function(){
$('a[data-href]').each(function(){
var anc = $(this),
href = anc.prop('href'),
dataHref = anc.data('href');
anc.prop('href', href + '?url=' + dataHref);
});
});
HTML 示例:
<a href="http://example.com/p/go.html" data-href="http://externallink.com">external link</a>
如果这仍然不是您想要的,现在您可能需要添加更多信息。
离开@Tim Vermaelan 的回答,你可以试试这个,它会检查每个 link 不是以你网站的 URL 开头的,而不依赖于它是 target="_blank"
:
$('a:not([href^="http://yoursite.com"])').prop('href', 'http://example.com/p/go.html?url=http://externallink.com');
我想更改我博客上的所有外部链接(此处为 blogspot,这就是我寻找 jQuery 代码的原因)而不更改我博客的 posting,因为我需要很多如果我这样做的话,工作量很大。
比如我的网站是example.com
。
我想将所有外部链接更改为
http://example.com/p/go.html?url=http://externallink.com
无需对我的博客进行任何更改 post。我没有任何想法可以开始。
已解决:https://gist.github.com/2342509谢谢大家:D 我只需要稍微改变一下。
在jQuery你可以试试:
// DOM ready
$(function(){
$('a[target="_blank"]').prop('href', 'http://example.com/p/go.html?url=http://externallink.com');
});
当然,只有当您在 HTML 中设置了 target="_blank"
property/attribute 并且您希望所有 link 都打开相同的 url.这个想法源于您希望在不同的 tab/window.
如果这不是必需的功能,您可以以类似的方式使用自定义 data-
属性。唯一的区别是您需要循环每个 link,并从中获取数据。
// DOM ready
$(function(){
$('a[data-href]').each(function(){
var anc = $(this),
href = anc.prop('href'),
dataHref = anc.data('href');
anc.prop('href', href + '?url=' + dataHref);
});
});
HTML 示例:
<a href="http://example.com/p/go.html" data-href="http://externallink.com">external link</a>
如果这仍然不是您想要的,现在您可能需要添加更多信息。
离开@Tim Vermaelan 的回答,你可以试试这个,它会检查每个 link 不是以你网站的 URL 开头的,而不依赖于它是 target="_blank"
:
$('a:not([href^="http://yoursite.com"])').prop('href', 'http://example.com/p/go.html?url=http://externallink.com');