2011-09-20 18 views
7

Sé que hay complementos que hacen esto, pero necesito algo bastante específico y no puedo encontrar nada.Ocultando la dirección de correo electrónico con jQuery

Necesito un script jQuery que solo cambie el enlace mailto, y no el texto del enlace. Por ejemplo:

<a href="person(at)exammple.com">Person's Email</a>

tengo que mostrar algo más dentro del enlace, además de la dirección de correo electrónico real. El script que estaba tratando de usar es this site.

Aquí está la secuencia de comandos:

jQuery.fn.mailto = function() { 
    return this.each(function(){ 
     var email = $(this).html().replace(/\s*\(.+\)\s*/, "@"); 
     $(this).before('<a href="mailto:' + email + '" rel="nofollow" title="Email ' + email + '">' + email + '</a>').remove(); 
    }); 
}; 

creo que es necesario para reemplazar el "e-mail" variable, con algo más de entre los <a> etiquetas, pero no estoy seguro de con qué. Todavía soy bastante nuevo en jQuery.

Gracias.

Respuesta

8

¿Qué tal esto:

(function($) { 
    jQuery.fn.mailto = function() { 
     return this.each(function() { 
      var email_add = $(this).attr("href").replace(/\s*\(.+\)\s*/, "@"); 
      var email_text = $(this).html(); 
      $(this).before('<a href="mailto:' + email_add + '" rel="nofollow" title="Email ' + email_add + '">' + email_text + '</a>').remove(); 
     }); 
    }; 

})(jQuery); 

$(document).ready(function() { 
    $(function() { 
     $('.email').mailto(); 
    }); 
}); 

Puedes probarlo @jsfiddle

1

var email = $ (this) .html(). Replace ('@', '(at)');

+0

Necesito hacerlo con jQuery, desafortunadamente. Probablemente podría hacerlo con PHP, pero tengo instrucciones específicas de que debe ser jQuery. – JacobTheDev

+3

Me parece jQuery ... –

0

Tengo un JQ-plug-in que hice eso podría ayudar. Ver el fiddle(working demo)

Tenga en cuenta que el complemento termina en/* --------------------------------- ----------------------------------------- */

Para usar es ez:

$("#domElementID").jqMailTo({ // Not all of these options are a must except for the address 
    address: ["[email protected]","[email protected]","[email protected]"], // can also be as simple as 1 string, exp -> address:'[email protected]', 
    label:  'testLabel', 
    subject: 'This is a subject', 
    body:  'This is a Body section', 
    cc:   '[email protected]', 
    bcc:  '[email protected]' 
}); 
Cuestiones relacionadas