2009-11-30 2 views
0

я реализовал следующие в один из наших сайтов, чтобы показать внешний значок ссылки рядом внешних ссылок:JQuery внешние ссылки класс

$(document).ready(function() { 
    $('#extlinks a').filter(function() { 
return this.hostname && this.hostname !== location.hostname; 
    }).after(' <img src="/images/external.png" alt="external link"/>'); 
}); 

Мы используем Business Catalyst и я надеюсь, что это не что-то делать с как их серверы настроены, но, если вы удалите WWW из URL-адресов всех ссылок, отображаемых как внешние.

Вот пример: http://noosabiosphere.org.au/_blog/Environment_Blog

Спасибо.

ответ

0

Пожалуйста, убедитесь, что ссылки начинаются с HTTP: // Я проверил его следующие ссылки:

<ul style="list-style:none none outside;"> 
    <li><a href="http://www.google.com">Google</a></li> 
    <li><a href="http://localhost/EnterKey.html">Enter Key</a></li> 
    <li><a href="www.microsoft.com">Microsoft</a></li> 
    <li><a href="http://stackoverflow.com/questions/">SO</a></li> 
</ul> 

<script type="text/javascript"> 
$(function(){ 
$("a").filter(function(){ 
    return this.hostname && this.hostname !== location.hostname; 
}).after("<img src='/images/extlink.gif'/>"); 
}); 
</script> 

Только первый (Google) и последней (SO) ссылки показать изображение не на thrid (MS) один ,

+0

Помните, что третий не является действительным внешним URL-адресом. Он окажется в текущем каталоге –

1

Похоже, что ссылки написаны на странице с www. впереди, а не относительные ссылки.

this.hostname !== location.hostname 

возвращает true.

0

Используя этот код вы можете найти внешние ссылки с помощью $('a:external');

(function($) { 
$.extend($.expr[':'], { 
    external: function(o) { 
     return o.hostname !== window.location.hostname && o.hostname; 
    } 
}); 
$.fn.external = function() { 
    return this.filter(':external'); 
}; 
}(this.jQuery)); 

Что касается ссылок, начиная с протоколом (HTTP: //), вы должны сделать это для всех внешних ссылок в любом случае, иначе большинство браузеров рассматривайте его как внутреннюю ссылку и добавьте доменное имя.

Смежные вопросы