2012-04-16 16 views
33

Desidero aprire un nuovo modello di posta di Outlook con "Indirizzo" ogni volta che un utente fa clic su un'immagine. Ho restituito il mio codice in una pagina html (collegata all'immagine), ogni volta che carica il javascript dovrebbe aprire un nuovo modello di posta. Ma la funzionalità non funziona. Fammi sapere cosa c'è di sbagliato nel mio codice.mailto using javascript

body onLoad="redirect()" 

script language="JavaScript" 

function redirect() 

     var email = "[email protected]" 
     var mailto_link = 'mailto:' + email 
     window = window.open(mailto_link, 'emailWindow') 
     if (window && window.open && !window.closed)   
      window.close() 
+1

'window' è una variabile di sola lettura. –

+1

È a causa di un blocco popup? – Ramesh

risposta

20

Si prega di trovare il code in jsFiddle. Usa jQuery per modificare l'href del collegamento. Puoi utilizzare qualsiasi altra libreria al suo posto. Dovrebbe funzionare.

HTML

<a id="emailLnk" href="#"> 
    <img src="http://ssl.gstatic.com/gb/images/j_e6a6aca6.png"> 
</a> 

JS

$(document).ready(function() { 
    $("#emailLnk").attr('href',"mailto:[email protected]"); 
});​ 

UPDATE

Un altro esempio di codice, se l'ID è noto solo durante l'evento click

$(document).ready(function() { 
    $("#emailLnk").click(function() 
    { 
     alert('h'); 
     document.location.href = "mailto:[email protected]"; 
    }); 
});​ 
51

Nessuna necessità di jQuery. E non è necessario aprire una nuova finestra. Protocolli che non restituiscono dati HTTP al browser (mailto:, irc://, magnet:, ftp:// (< - dipende da come è implementato, normalmente il browser ha un client FTP integrato)) possono essere interrogati nella stessa finestra senza perdere il contenuto attuale. Nel tuo caso:

function redirect() 
{ 
    window.location.href = "mailto:[email protected]"; 
} 
<body onload="javascript: redirect();"> 

O semplicemente direttamente

<body onload="javascript: window.location.href='mailto:[email protected]';"> 
4

Ho usato semplicemente questo codice JavaScript (utilizzando jQuery ma non è strettamente necessario):

$("#button").on("click", function(event) { 
     $(this).attr('href', 'mailto:[email protected]?subject=hello'); 
    }); 

Quando gli utenti fanno clic su il link, sostituiamo l'attributo href dell'elemento cliccato.

Fare attenzione a non impedire che il comportamento di default (event.preventDefault), dobbiamo lasciare che farlo perché abbiamo appena sostituito il href dove andare

Credo che i robot non possono vederlo, l'indirizzo è protetto da spam.

3

È possibile utilizzare il semplice mailto, vedere di seguito per il markup semplice.

<a href="mailto:[email protected]">Click here to mail</a> 

Una volta fatto clic, si aprirà Outlook o qualsiasi client di posta elettronica impostato.

+0

Hey Grant, grazie per aver modificato la mia terminologia. Sono di fretta anche tipo. – Allan