treehouse : what would you like to learn today?
Web Design Web Development iOS Development

Get the mailto link without the mailto

  • I'm working on a plugin for my company's site. They have address on their site that go to outlook when clicked. I have my plugin concept I just need to grab the email from the link is clicked.

    how can i use javascript/jquery to strip the url from the link and ignore the "mailto:"
  • I've seen people use javascript to add links, so bots can't take the email address.

    It's not super practical, but it separates the name from the extension to prevent bots from reading it.
    <script type=\"text/javascript\" charset=\"utf-8\">

    // jQuery
    jQuery(document).ready(function($) {
    $('#email-joe').each(function() {
    var email = {
    name: 'joe',
    address: 'example.com'
    };

    var href = email.name + '@' + email.address;

    $(this).attr('href', href);
    })
    });


    </script>

    <a id=\"email-joe\" href=\"contact.php?name=joe\">Email Joe</a>
  • I'm not trying to protect the email address I want to grab it from the href:

    psdo code:

    //give all mail links the class mailbox
    $('a[href^=mailto]').addClass('mailbox');

    $('.mailbox').click(function()
    {
    //get the email link from the href

    //open new windows with the email link sent via an address (i have this part figured out)
    });


    What i'm trying to do now is get the email link:

    <a href="mailto: user@provider.com">email me</a>

    I want to pull out the "user@provider.com". I will never know what the email address is going to be so i cant search for a specific email either.

    Look like i need to get the enter href (mailto: user@provider.com) then remove the mailto: part. Once i have that I can send it to a php driven form using http://www.site.com/contact.php?email=user@provider.com.
  • If your using jQuery then grab the attribute
    $('.mailto').click(function() {
    href = $(this).attr('href');
    })
  • I just got that part about 10min ago. Now i'm trying to to figure out how to strip the "mailto: " from it:


    $(function()
    {
    $('a[href^=mailto]').addClass('mailbox');
    $('.mailbox').click(function()
    {
    var url = $(this).attr('href');

    alert(url);

    return false;
    });
    });


    this is my test to see when i get the url whittled down to just the email address. so far it shows "mailto: user@provider.com"
  • Try this.
    $(function() {
    $('a[href^=mailto]').addClass('mailbox');
    $('.mailbox').click(function()
    {
    var url = $(this).attr('href');

    url = url.replace(/mailto: /, '');

    alert(url);

    return false;
    });
    });
  • figured it out after hammering away. Thats basically how I did it. I used replace to locate the mailto: and replace it with ""
  • thats nice!! thanks a lot.. :mrgreen: resell rights