Ouvrez le lien href mailto dans un nouvel onglet / fenêtre

J’ai une image qui quand je clique, je veux créer un lien vers un mailto:

 email 

Cependant, une fois que l’utilisateur a cliqué dessus, il lancera l’option de courrier électronique pour choisir une application mailto, et une fois que je choisis, le lien mailto est ouvert dans l’onglet actuel. Cela entraînera l’utilisateur à quitter l’application.

Donc, je veux que la page à envoyer un email (par gmail, yahoo, etc) est soit ouverte dans un nouvel onglet ou dans une fenêtre. Une idée comment faire ça? J’ai essayé à la fois target = “_ newtab” et target = “_ blank” mais les deux ne fonctionnaient pas.

Toute aide sera très appréciée .. Merci …

(La méthode jQuery est également acceptable s’il n’y a pas d’autre moyen, merci)

    mailto appelle le client de messagerie par défaut de l’utilisateur. Il n’ouvre aucune fenêtre ou onglet dans aucun cas. Si vous souhaitez utiliser une fenêtre ou un onglet, vous devez configurer un formulaire et autoriser le formulaire à s’ouvrir dans votre fenêtre / onglet. Bien sûr, vous devrez configurer le formulaire pour envoyer du courrier avec la méthode disponible sur votre serveur.

    Cette information est obsolète, je pense qu’il est maintenant possible de le faire, puisque Gmail et d’autres fonctionnent désormais via des liens de navigation. il y a cependant le problème que vous voudriez seulement qu’il s’ouvre dans un nouvel onglet s’il n’ouvre PAS dans un client de messagerie système, et s’ouvre dans un nouvel onglet s’il s’agit d’un client de messagerie Web, sinon, par exemple, les utilisateurs d’Outlook voient un onglet vide apparaître, ce qui est désorientant, surtout parce qu’ils sont des utilisateurs d’Outlook.

    Cette réponse est basée sur cette réponse Ouvrez le lien href mailto dans un nouvel onglet / fenêtre .

    À l’heure actuelle, les nouveaux navigateurs prennent en charge certaines interfaces de messagerie Web (telles que Gmail, Yahoo Mail, AoL, etc.).

    Ainsi, nous pouvons simplement ouvrir une nouvelle fenêtre (Supporter les anciens navigateurs, les nouveaux navigateurs vont simplement ouvrir un nouvel onglet) et append une solution de repliement (en cas d’utilisateur non javascript) en utilisant preventDefault et la redirection de lien par défaut.

    http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation

    https://developer.mozilla.org/es/docs/DOM/event.preventDefault

    https://developer.mozilla.org/en-US/docs/Web/API/Window.open

    Ainsi:

    Send a e-mail

    http://jsfiddle.net/cNUNP/

    Crédit à https://stackoverflow.com/a/9880404/1107020

    Je suppose que c’est tout.

    Salutations, Marcos.

    Vous n’avez pas besoin de Javascript / Jquery pour cela. Un lien standard fonctionne (sauf Firefox v30 + en raison d’un bogue, voir ci-dessous).

      

    A partir de Firefox 30, ne fonctionne pas dans Firefox à cause d’un bogue . Il s’ouvre dans le même onglet ET remplace l’historique afin que vous ne reveniez pas à la page où se trouvait le lien mailto:.

    Je sais que c’est une vieille question, mais ce fil avait la meilleure série de réponses s’il était trouvé. J’ai modifié la réponse de Marcos ci-dessus pour fermer également l’onglet vide créé si le client dispose d’un gestionnaire de messagerie externe

    réponse de référence

    JS (w \ jQuery pour les gestionnaires d’événements)

     $(document).on('click', 'a[href^=mailto]', function(e) { var checkClose, checkLoaded, event, href, i, len, loadEvents, results, t, wndw; e.preventDefault(); href = this.href; wndw = window.open(href, 'mail'); checkClose = function() { console.log('checkClose'); try { wndw.location.href; return wndw.close(); } catch (error) { return console.log('webmail'); } }; t = setTimeout(checkClose, 5000); try { checkLoaded = function() { console.log('loaded'); clearTimeout(t); return t = setTimeout(checkClose, 2000); }; wndw.onload = checkLoaded; loadEvents = ["DomContentLoaded", "load", "beforeunload", "unload"]; results = []; for (i = 0, len = loadEvents.length; i < len; i++) { event = loadEvents[i]; results.push(wndw.addEventListener(event, checkLoaded)); } return results; } catch (error) { return checkLoaded(); } }); 

    jsfiddle

    Variante 1 (JavaScript):

      [email protected] 

    Variante 2 (JavaScript):

      [email protected] 

    Variante 3 (jQuery):

      [email protected] 

    Variante 4 (jQuery):

      [email protected] 

    Atsortingbut cible HTML: https://www.w3schools.com/tags/att_a_target.asp

    Il y a un hack HTML pas cher à ce problème …..

    Le lien sur une page …

     Mail 

    Sur mailto.html ….

      If nothing pops up click.....Mail! 

    _blank ouvre un nouvel onglet / fenêtre et la métabalise fait le rest. lien comme cours de secours.

    Avez-vous essayé le “clic du milieu” (“Ouvrir dans un nouvel onglet”)? Ça marche pour moi

    ( http://forums.mozillazine.org/viewtopic.php?f=7&t=1842595 )

    bien qu’il semble particulièrement étrange de demander à l’utilisateur de cliquer au milieu

    Quoi qu’il en soit, j’ai trouvé une pseudo-solution qui semble fonctionner dans FF 25 / Chrome 35

    1.- Configurez votre lien à peu près comme ceci:

     [email protected]  

    2.- En utilisant javascript (avec jquery dans l’exemple), configurez un événement onlclick comme:

      $('.mailToLink').on('click', function(){ mailto=$(this).data('mail'); w=window.open('','_blank','',true); w.location.href='mailto:'+mailto; w.focus(); }); 

    Cela ouvre une nouvelle fenêtre / onglet vierge et change son emplacement par la suite, de sorte que le gestionnaire de protocole de messagerie ne peut pas agir tant que la nouvelle fenêtre n’est pas déjà ouverte.

    Non testé avec le client de messagerie local (Outlook et al.)