web-dev-qa-db-fra.com

mailto utilisant javascript

Je souhaite ouvrir un nouveau modèle de courrier Outlook avec la mention "À l'adresse" chaque fois qu'un utilisateur clique sur une image. Je dois retourner mon code dans une page HTML (liée à l'image), chaque fois qu'il charge le javascript, il doit ouvrir un nouveau modèle de courrier. Mais la fonctionnalité ne fonctionne pas. Faites-moi savoir ce qui ne va pas dans mon code.

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()
46
Sathish

Pas besoin de jQuery. Et il n'est pas nécessaire d'ouvrir une nouvelle fenêtre. Protocoles qui ne renvoient pas de données HTTP au navigateur (mailto:, irc://, magnet:, ftp:// (<- cela dépend de la manière dont il est implémenté, le navigateur dispose normalement d’un client FTP intégré)) peut être interrogé dans la même fenêtre sans perdre le contenu actuel. Dans ton cas:

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

Ou juste directement

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

Veuillez trouver le code dans jsFiddle . Il utilise jQuery pour modifier le href du lien. Vous pouvez utiliser n'importe quelle autre bibliothèque à la place. Ça devrait marcher.

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]");
});​

[~ # ~] met à jour [~ # ~]

Un autre exemple de code, si l'identifiant n'est connu que pendant l'événement click

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

Avec JavaScript, vous pouvez créer un lien "à la volée" en utilisant quelque chose comme:

var mail = document.createElement("a");
mail.href = "mailto:[email protected]";
mail.click();

Ceci est redirigé par le navigateur vers un client de messagerie installé sur la machine sans perdre le contenu de la fenêtre en cours ... et vous n'auriez besoin d'aucune API comme "jQuery".

11
GuerraTron

J'ai simplement utilisé ce code javascript (en utilisant jquery mais ce n'est pas strictement nécessaire):

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

Lorsque les utilisateurs cliquent sur le lien, nous remplaçons l'attribut href de l'élément cliqué.

Attention à ne pas empêcher le comportement par défaut (event.preventDefault), nous devons le laisser faire car nous venons de remplacer le href où aller

Je pense que les robots ne peuvent pas le voir, l'adresse est protégée contre les spams.

4
Proustibat

Vous pouvez utiliser le simple mailto, voir ci-dessous pour le balisage simple.

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

Une fois cliqué, il ouvrira votre Outlook ou le client de messagerie que vous avez défini.

4
Allan