2011-12-18 3 views
12

У меня есть изображение, которое когда щелчок, я хочу сделать ссылку на почтовый:Откройте HREF почтовой связи в новой вкладке/окно

<a id="mailto" href="mailto:[email protected]" target="_newtab" > 
     <img src="@Url.Content("~/Content/HomePage/email.png")" alt="email" /></a> 

Однако, в настоящее время, как только его щелкнули, она запустит вариант электронной почты на выберите приложение mailto, и, как только я выберу, на текущей вкладке откроется ссылка mailto. Это заставит пользователя покинуть приложение.

Итак, я хочу, чтобы страница, отправленная по электронной почте (через gmail, yahoo и т. Д.), Открывалась либо в новой вкладке, либо в окне. есть идеи как это сделать? Я пробовал как target = "_ newtab", так и target = "_ blank", но оба не работали.

Любая помощь будет высоко ценится .. Спасибо ...

(метод JQuery также приемлем, если нет другого пути, спасибо)

+1

«Я хочу, чтобы ссылка mailto открывалась в новой вкладке или в окне» - что именно вы ожидаете появиться в этой новой вкладке или окне? Пожалуйста, будьте как можно более конкретными. – evan

+0

страница для отправки электронной почты, gmail, yahoo и т. Д. – shennyL

+1

Это невозможно. Сожалею. – jamieb

ответ

7

MAILTO вызывает клиент электронной почты пользователей по умолчанию. Он не открывает окно или вкладку в любом экземпляре. Если вы хотите использовать окно или вкладку, вам нужно настроить форму и разрешить открывать форму в вашем окне/вкладке. Конечно, вам нужно будет настроить форму для отправки почты любым способом, доступным на вашем сервере.

+16

Возможно, это было в 2011 году, но это не так. Вы можете открывать почтовые клиенты, такие как Gmail, на новой вкладке, используя target = "_ blank". К сожалению, этого недостаточно, поскольку он запустит пустую вкладку для людей, использующих автономных клиентов. –

+1

И как вы открываете Outlook (самый популярный почтовый клиент) на вкладке? В окне или вкладке всегда можно открывать веб-службы электронной почты. Но веб-службы электронной почты не являются большинством почтовых клиентов. – Scott

+2

Этот ответ устарел, некоторые почтовые клиенты открываются в таких записях, как gmail или inbox. –

20

эта информация устарела, теперь это возможно, я верю, поскольку gmail и другие теперь работают через ссылки на браузер. тем не менее существует проблема, которую вы только хотите, чтобы она открывалась на новой вкладке, если она не открывается в системном почтовом клиенте и открывается на новой вкладке, если она является клиентом электронной почты, иначе, например, пользователи Outlook видят пустую вкладку, который дезориентирует, особенно, поскольку они являются пользователями Outlook.

+0

Мой азерс в вашем посте, я просто добавил код. Но вы заслуживаете кредита. –

-1

Вы пробовали «средний щелчок» («Открыть на новой вкладке»)? Это работает для меня

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

хотя это кажется особенно странным, чтобы спросить пользователя Средний нажмите

Во всяком случае, я нашел псевдо решение, которое, кажется, работает в FF 25/Chrome 35

1.- Установите ссылочную что-то вроде этого:

<a href="javascript:void()" 
class="mailToLink" 
data-mail="[email protected]">[email protected] </a> 

2.- Использование JavaScript (с JQ uery в примере) настроить учетную onlclick события, как:

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

Это открывает новое окно/вкладку пустую, а затем меняет свое местоположение, так что обработчик протокола электронной почты не может тото действовать до тех пор, новое окно не будет уже открыт

Не проверен с помощью почтового клиента (Outlook и др.)

11

Этот ответ основан на этом ответе Open the href mailto link in new tab/window.

Прямо сейчас, поддерживают новые браузеры некоторые веб-интерфейсы (как Gmail, Yahoo Mail, AoL и т. Д.).

Таким образом, мы можем просто открыть новое окно (поддержка старого браузера, новые браузеры только откроют новую вкладку) и добавить резервную копию (в случае не-javascript-пользователя) с использованием предотвращения переназначения и перенаправления ссылок по умолчанию.

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

Как так:

<a onClick="javascript:window.open('mailto:[email protected]', 'mail');event.preventDefault()" href="mailto:[email protected]">Send a e-mail</a>

http://jsfiddle.net/cNUNP/

Кредит до https://stackoverflow.com/a/9880404/1107020

Угадайте, что это все.

Поздравления, Маркос.

+1

Не работает для меня в Firefox 40. – Jabba

+0

скрипка работала в FF43 – kn00tcn

11

Для этого вам не нужен Javascript/JQuery. Работает стандартная ссылка (кроме Firefox v30 + из-за ошибки, см. Ниже).

<a href="mailto:[email protected]" target="_blank"> 

По Firefox 30, не работает в Firefox из-за bug. Он открывается на той же вкладке И заменяет историю, так что удары назад не возвратят вас на страницу, где была ссылка mailto:.

+0

Это правильно. Я пытаюсь найти решение. _blank делает именно то, что говорит Коста. Как мы можем обойти и открыть страницу gmail на новой вкладке или, возможно, всплывающее окно javascript? – OldDogLearningNewPerlTricks

+2

Только за историю это 8 месяцев спустя, и ошибка все еще существует. – Leonidas

+2

Обновление 2016: ошибка все еще не исправлена. Первоначально был открыт в 2011 году, поэтому сомнительно, что это будет исправлено, если ошибка не получит тонну upvotes (подсказка, подсказка): https://bugzilla.mozilla.org/show_bug.cgi?id=646552 – Costa

-1

Существует дешевый HTML-хак этой проблемы .....

Ссылка на одной странице ...

<a href="/mailto.html" target="_blank">Mail</a> 

На mailto.html ....

<meta HTTP-EQUIV="REFRESH" content="0; url=mailto:[email protected]"> 

If nothing pops up click.....<a href="mailto:[email protected]">Mail!</a> 

_blank открывает новую вкладку/окно, а метатег делает все остальное. как резервный отрыв.

Смежные вопросы