mailto link ne fonctionne pas dans un environnement chrome (sur https))
j'ai un lien mailto sur une page. Il fonctionne comme prévu lorsque la page est chargée par lui-même.
cependant quand la page est chargée via un frameset dans Chrome rien ne se passe. Avec les outils de développement chargés l'erreur "[blocked] The page at https://mysite.com ran insecure content from mailto:..."
est affichée.
Comment puis-je corriger/contourner cela?
7 réponses
j'ai aussi eu ce problème récemment avec un iframe. L'utilisation du cadre supérieur a fonctionné et devrait être compatible avec tous les principaux navigateurs.
window.top.location = 'mailto:...';
Oui, utiliser "top" est l'astuce, mais vous pouvez le faire avec HTML seul!
<a target="_top" href="mailto:...">email</a>
Voici la solution avec laquelle j'ai fini: Testé avec Chrome, Firefox, IE6, IE7, IE8, IE9, IE10, IE11, Safari
$("a[href^='mailto:']").on("click",function() {
window.top.location = $(this).prop("href");
return false;
});
peut-être parce que votre frameset parent est https, mais Chrome semble maintenant traiter le lien mailto comme non sécurisé.
je viens de rencontrer un problème similaire lors du déclenchement d'un lien mailto via
window.location = 'mailto:...'
le changer en ceci a fonctionné autour de lui.
window.open( 'mailto:...')
c'est ma solution jusqu'à ce que Chrome bug est corrigé:
$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase());
if($.browser.chrome){
myWindow=window.open("mailto:"+eml+"?subject="+msb,'','width=50,height=50');
myWindow.close();
} else {
window.location.href = "mailto:"+eml+"?subject="+msb;
}
pour Chrome, créer une instance avec window.ouvrez la méthode () et fermez cette instance immédiatement. Petite fenêtre "clignotera" pendant une courte période, mais fera le travail. C'est une solution" sale " mais autant que le bug de Chrome.
Pour les autres navigateurs fenêtre.position() méthode peut être utilisée.
cela fonctionnera aussi, et ne fermera pas la fenêtre avec facebook....
<a href="mailto:..." target="_blank">...</a>
ou
$("a[href^='mailto:']").attr('target','_blank');
ajouter cible=" _top "ou" _blank "ou" _parent "
<a target="_top" href="mailto:a@b.c">email1</a>
<a target="_top" href="mailto:a@b.c">email2</a>