Проблема со сценарием обфускации электронной почты jQuery, который я использую - PullRequest
3 голосов
/ 02 апреля 2012

У меня есть страница, которая содержит профили различных членов компании, и эти профили также содержат адреса электронной почты. Я скрываю адреса электронной почты с помощью скрипта jQuery, который нашел. На странице отображается только картинка, имя и ссылка «Просмотр профиля» для каждого человека, и я использую плагин «Colorbox» http://www.jacklmoore.com/colorbox jQuery для отображения содержимого профиля по ссылке «Дополнительная информация». http://www.davidatkinson.com/ipb/site/about_us/the_team/index.htm (сайт все еще находится в стадии разработки, поэтому только первая строка профилей содержит электронные письма.

У меня проблема с электронной почтой jQuery. Он отображает ВСЕ электронные письма вместе в виде одной длинной ссылки вместо отображения адреса электронной почты каждого человека при каждом вызове DIV.

Кто-нибудь может помочь? Или у кого-нибудь есть лучшие решения для обфускации нескольких адресов электронной почты на одной странице?

Скрипт для сокрытия электронной почты:

$(function(){
var spt = $('a.mailme');
var at = / at /;
var dot = / dot /g;
var addr = $(spt).text().replace(at,"@").replace(dot,".");
    $(spt).after('<a href="mailto:'+addr+'" title="Send an email">'+ addr +'</a>')
    .hover(function(){window.status="Send a letter!";}, function(){window.status="";});
    $(spt).remove();
});

HTML:

<div id="profile-tony_ingham" class="profile_wrapper">
<div class="profile_outer">
    <div class="profile_inner">
        <div class="profile_name">Tony Ingham</div>
        <div class="job_title">Chief Executive</div>
            <p>xxxxxxxxxxx</p>
            <p>Email: <a class="mailme">tony.ingham at ipbcommunications dot co.uk</a></p>
    </div>
</div>
</div>

<div id="profile-stewart_pimbley" class="profile_wrapper">
    <div class="profile_outer">
    <div class="profile_inner">
        <div class="profile_name">Stewart Pimbley</div>
        <div class="job_title">Managing Director</div>
            <p>xxxxxxxxxxx</p>
            <p>Email: <a class="mailme">stewart.pimbley at ipbcommunications dot co.uk</a></p>
    </div>
</div>
</div>

<div id="profile-catherine_bellis" class="profile_wrapper">
    <div class="profile_outer">
    <div class="profile_inner">
        <div class="profile_name">Catherine Bellis</div>
        <div class="job_title">Director</div>
            <p>xxxxxxxxxxx</p>
            <p>Email: <a class="mailme">catherine.bellis at ipbcommunications dot co.uk</a></p>
    </div>
</div>
</div>

Заранее спасибо:)

1 Ответ

2 голосов
/ 05 апреля 2012

Если я определил, что вы пытаетесь сделать, попробуйте заменить функцию jQuery следующим образом:

$(function(){
    $("a.mailme").each(function() {
        var $emailAddress = $(this).html();
        $emailAddress = $emailAddress.replace(" at ", "@").replace(" dot ", ".");
        $(this).html($emailAddress);
        $(this).attr("href", "mailto:"+$emailAddress);
    });
});​

Я также настроил JSFiddle , чтобы вы могли поигратьс ним.

Дайте мне знать, если это то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...