jQuery出站链接匿名+法律声明

时间:2012-04-19 19:06:42

标签: javascript jquery html dom

我如何让jQuery(最好)脚本遍历每个<a>标记并找到任何不以

开头的标记
http://www.example.com/ 

并将src属性更改为

http://www.example.com/outbound/?verifyAge=0&dest='+encodeURIComponent(original_src) 

并申请rel="external" target="_blank"

2 个答案:

答案 0 :(得分:2)

Here是概念的快速证明:

HTML:

<a href="http://www.google.com">Google</a>
<a href="test.html">Test</a>

JavaScript的:

$('a').not('[href^="http"]').each(function () {
    var element = $(this);
    element.attr('href', element.attr('href') + '?foo=baz');
    element.attr('target', '_blank');
});

基本上JavaScript正在做的是找到不以 a开头的任何http元素(您需要expand that conditional logic为自己的{{3}}需要,以及处理任何必须逃脱URL中的斜杠或任何类似的问题),抓住它作为jQuery对象的引用(我不记得this是否已经是一个jQuery对象,如果是,则可以省略该部分),修改其href属性并添加target属性。

答案 1 :(得分:0)

我认为这样的事情会起作用。

​$('a')
    .filter( function() { return $(this).attr('href').indexOf('www.example.com') !== 0; })
    .each( function(i, el) {
        var curHref = el.attr('href');
        el.attr('rel', 'external');
        el.attr('target', '_blank');            
        el.attr('href', 'http://www.example.com/outbound/verifyAge=0&dest='+encodeURIComponent(curHref));             
    }​);

有一个插件可以在元素上进行正则表达式匹配,但使用正则表达式对我来说似乎有些过分。