Linki Mailto nic nie robią w Chrome, ale działają w Firefoksie?

149

Wygląda na to, że mailtolinki, które umieszczamy w naszej witrynie, nie działają w przeglądarce Chrome, chociaż działają w przeglądarce Firefox.

Prosty przykład tutaj: http://jsfiddle.net/wAPNH/

<a href='mailto:[email protected]'>hi this is a test</a>

Czy musimy zrobić coś specjalnego, aby włączyć linki pocztowe w Chrome?

Crashalot
źródło
U mnie działa dobrze, czy masz jakieś rozszerzenia Chrome lub coś, co mogłoby przeszkadzać?
Ryan Kempt,
Która aplikacja otwiera się w FF po kliknięciu linku mailto?
Mohkhan,
1
Wypróbowałem w chrome 28 i ten link JSfiddle działał dobrze dla mnie (działając na Macu i dobrze otworzył mail.app).
sasbury,
Odkryłem, że działanie mailto:test%40test.comjest bardziej spójne
Pro Q

Odpowiedzi:

128

Jest to specyficzne dla ustawień przeglądarki, tzn. Będzie się zachowywać inaczej w zależności od ustawień przeglądarki użytkownika. Użytkownik może zmienić mailto:zachowanie linków w przeglądarce Chrome, odwiedzając chrome://settings/handlerslubChrome Settings->Content Settings->Manage Handlers...

Jeśli „e-mail” nie jest wymieniony na tej stronie, zapoznaj się z odpowiedzią dotyczącą dalszego postępowania.

kennypu
źródło
7
świetnie, jakie jest domyślne zachowanie?
Crashalot,
8
Uważam, że domyślnie uruchamiany jest klient poczty na komputerze. Wiem, że w pracy będzie działać thunderbird; jeśli mają zainstalowany Outlook, może uruchomić Outlooka, itp. Osobiście nie uruchamiał Gmaila domyślnie, musiałem to ustawić w ten sposób.
kennypu
2
@Crashalot nope. link mailto to link mailto
kennypu
48
Otwarcie chrome: // settings / handlers daje mi puste pole bez opcji dodania modułu obsługi. Wygląda na to, że Chrome jest tutaj poważnie uszkodzony: po prostu nie otworzy mojego skonfigurowanego programu pocztowego (Thunderbird) w odpowiedzi na łącze mailto.
Peter Flynn
3
@PeterFlynn wygląda na to, że Chrome spróbuje teraz uruchomić domyślnego klienta poczty zainstalowanego na komputerze. Upewnij się, że thunderbird jest ustawiony jako domyślny klient poczty. Zobacz ten link, aby dowiedzieć się, jak to zrobić: kb.mozillazine.org/Default_mail_client#Windows
kennypu
108

Dzieje się tak, ponieważ Chrome obsługuje mailto w inny sposób. Możesz przejść do chrome://settings/handlersi upewnić się, że jest to domyślny program obsługi. W twoim przypadku nie będzie (tj. Nie ma na liście). Teraz przejdź do gmail.com. Powinieneś zobaczyć coś takiego po kliknięciu przycisku obok przycisku zakładki.

Ustaw mailto w chrome

Jeśli chcesz otwierać wszystkie linki e-mail za pośrednictwem Gmaila, ustaw opcję „Użyj Gmaila”. Teraz po kliknięciu przycisku mailto, Chrome automatycznie otworzy się w Gmailu.

Rajesh Hegde
źródło
1
To zadziałało dla mnie, bez wcześniejszego
odwiedzenia Gmaila
1
Gmail? Co ma z tym wspólnego Gmail? Chcę, aby Chrome otwierał Thunderbirda zamiast otwierania nowej instancji Chrome.
Peter Flynn
Idź do chrome: // settings / handlers, aby ustawić program obsługi.
Rajesh Hegde
1
@ Gi1ber7 Możesz przejść do chrome: // settings / handlers, aby zmienić ustawienie mailto.
Rajesh Hegde
1
nie mam tam opiekunów. wth
Boris Gafurov
42

W moim przypadku chrome był powiązany jako protokół MAILTO w systemie Windows 10 .

Zmieniłem skojarzenie na Outlooka za pomocą „Programy domyślne” -> „Skojarz typ pliku lub protokół z programem” .

MAILTO jest znacznie poniżej na liście. Ten zrzut ekranu może pomóc.

wprowadź opis obrazu tutaj

SamJackSon
źródło
Dobrze, ale co, jeśli chcemy, aby otwierało się w konkretnej witrynie, a nie w aplikacji?
Kyle Delaney
2
W systemie Windows 10 musiałem wybrać Outlooka na liście po lewej stronie, zanim zobaczyłem pole wyboru protokołu „mailto” na liście po prawej stronie.
Tom McDonald
15

Doświadczyłem również tego problemu i ostatecznie wyśledziłem, że mój link znajdował się w ramce iframe, a moja aplikacja internetowa używa protokołu HTTPS. Chrome blokował go z tego powodu (Chrome otwierał inne linki mailto poza ramką iframe).

W linku mailto nie działającym w ramce chrome (przez https) , Kendsnyder wspomniał o zmianie

<a href="mailto:...">email</a>

do

<a target="_top" href="mailto:...">email</a>

Voila, problem rozwiązany. Ten link mailto działa teraz we wszystkich przeglądarkach.

rrudland
źródło
Ciekawe, czy używanie target=_parent"też by zadziałało. Dobre znalezisko.
Termato
Dzięki. Działało świetnie. @Termato, prawdopodobnie działałoby, gdyby była to ramka „górna”. Po prostu użyj target="_top"lub jeśli używasz JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe
Teraz target = "_ top" również nie działa :( jakiekolwiek alternatywne obejście. Próbowałem z "_parent" i to też nie działa.
Vijay Mishra
target="_top"pracował dla mnie w ramce iframe w Google Chrome
John Doherty,
@Basj działa dobrze na moim (najnowszym) Chrome. Czy masz domyślnego klienta poczty na swoim komputerze?
Thomas Ayoub
13

Musisz zezwolić Gmailowi ​​na zainstalowanie modułu obsługi usługi dla protokołu mailto:

1) przejdź do Gmaila

2) kliknij małą ikonę rombu na końcu paska adresu (zrzut ekranu)

3) ciesz się

wprowadź opis obrazu tutaj

jj_
źródło
nie widzę czegoś takiego
Boris Gafurov
@BorisGafurov Czy Twoja wersja Chrome jest aktualna?
jj_
7

Możesz spróbować przejść do chrome://settings/handlersi ustawić wartość mailto:do nonezamiastgmail

Yuriy Galanter
źródło
7
To samo tutaj: chrome 27 nie ma zdefiniowanego programu obsługi dla mailto ani niczego innego ... wierd, może nowe domyślne ustawienia zabezpieczeń w chrome. W FF też musiałem dodać to ręcznie.
Robert Hoffmann
To samo tutaj. Chrome jest w zasadzie uszkodzony z linkami mailto
Peter Flynn
6

Poprawka, która działała dla mnie, ponieważ moje programy obsługi protokołów były puste

https://productforums.google.com/forum/#!topic/gmail/CQMCGRvyhCM

Podsumowując, patrz odpowiedź karmazyna43

W przypadku mailto: - Upewnij się, że jesteś zalogowany do Gmaila, a aktywne okno jest Twoją główną stroną Gmaila (w przeciwnym razie nic się nie stanie). - Skopiuj / wklej to w pasku adresu:

javascript:navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","Gmail")

Dodaj javascript: ponownie z przodu, jeśli to konieczne, ponieważ kiedy go wkleiłeś, Chrome prawdopodobnie przyciął wszystko przed, łącznie z okrężnicą. Następnie naciśnij Enter.

Gdy otworzy się wyskakujące okienko, kliknij „Zezwól”

Benn
źródło
A co z outlook.com?
Kyle Delaney
3

Miałem ten sam problem. Problem, z jakiegoś dziwnego powodu, Chrome stał się domyślnym narzędziem do otwierania mailto: link. Rozwiązanie: ustaw klienta poczty jako domyślną aplikację, aby go otworzyć. Jak: http://windows.microsoft.com/en-nz/windows/change-default-programs#1TC=windows-7

Powodzenia

Jes
źródło
dzięki, to było pomocne, musiałem bezskutecznie wypróbować wszystkie wyższe w rankingu, zanim tu dotarłem :(.
Boris Gafurov
2

Znalazłem tę odpowiedź na forum Google, które mi pomogło. W przypisach jest mowa o „googleapps.exe” - nie mam tego i nadal działa. Po prostu postępuj zgodnie z poniższymi instrukcjami, ale zamknij wszystkie aplikacje przed wprowadzeniem zmian w Rejestrze. Zapisałem również istniejącą wartość na wypadek, gdyby nie zadziałała.


Po prostu wpisz „uruchom” w pasku wyszukiwania, a następnie wpisz „regedit” i przejdź do:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\ 

edytuj (kliknij dwukrotnie) „(Domyślnie)” na:

"C:\Program Files (x86)\Google\Google Apps\googleapps.exe" --domain= --mailto.google.com="%1" 

Otóż ​​to! Zapisz i zamknij, a powinno działać pięknie!

Użycie tej metody zapobiega konieczności pobierania GMail Notifier, który nie jest potrzebny tym z nas, którzy korzystają z usługi GTalk, ponieważ robi to za nas. Nie jestem pewien, dlaczego Google nie może łatwo rozwiązać tego problemu. Słyszałem, że Google Apps nie zostało w pełni przetestowane w systemie Windows 7, ale jest oczywiste, że działa z nim ten sam tag.

Uwaga: jedyną rzeczą w tym rozwiązaniu jest to, że musisz mieć plik googleapps.exe na swoim komputerze. Wydaje mi się, że dostałem go z moim bezpłatnym pakietem GooglePack z ich witryny, która została wycofana. Próbowałem przeszukać sieć w celu znalezienia sposobu, aby go pobrać, ale, co dziwne, wydaje się, że jest teraz zarezerwowany tylko dla firm i nie ma linku do pobrania dostępnego w sieci, ponieważ każdy, kto to ma, przesyłał go strumieniowo za pomocą Google Updater ... Dziwne. W każdym razie, powodzenia!

Mach1
źródło
1

Innym rozwiązaniem jest zaimplementowanie własnej niestandardowej kontroli wyskakujących okienek / formularzy / użytkowników, które będą powszechnie interpretowane we wszystkich przeglądarkach.

Przyznane to nie wykorzysta możliwości „mailto” po wyjęciu z pudełka. Wszystko zależy od tego, z jakim przestrzeganiem dostępności pracujesz. Niestety dla mnie - mailto musiało być domyślnie dostępne dla każdego bez "uciążliwości dla klienta".

Twoja ostateczna decyzja.

fenix
źródło
1

W systemie macOS sprawdź także ustawienia Mail.app, która aplikacja jest wybrana jako domyślna aplikacja e-mail / powiązana z mailto:linkami:

Jeśli kiedykolwiek kliknąłeś to powiadomienie w Gmailu, które umożliwia otwieranie linków w Gmailu zamiast w aplikacji - a po tym zresetowaniu modułu obsługi Chrome , musisz edytować to ręcznie w ustawieniach Mail.app.

Zrzut ekranu

CodeBrauer
źródło
0

Zwykłe <a href="mailto:[email protected]"></a>powinno działać, ale pamiętaj, że musisz mieć ustawiony domyślny program pocztowy na swoim komputerze. Na przykład używam Ubuntu 14.04, a domyślny e-mail to thunderbird, który działa dobrze.

Sheshank S.
źródło
0

„Używaj Chrome, zapraszaj kłopoty” - Anonimowy. (Tylko symboliczne odniesienie)

Cóż, Chrome słynie z wielu domyślnych narzędzi z obsługą zabezpieczeń i stąd bierze się twój problem.

Można to jednak cofnąć, „ustawiając domyślnego klienta poczty e-mail” (ponieważ domyślny klient poczty e-mail nie jest skonfigurowany) lub konfigurując domyślny program obsługi w „chrome: // settings / handlers” (domyślnie jest ustawiony na „ Ignorować').

user11768920
źródło
1
Tak, to jeden z najczęstszych powodów. A sugerowane rozwiązanie z pewnością powinno działać.
0

Rozwiązałem problem za pomocą tego kodu:

    
<button onclick="email()">Contact me !</button>	

<script>
function email() {
    var str = window.open('mailto:[email protected]', '_blank');
}
</script>

U mnie zadziałało jak urok!

Waleed Aldhahi
źródło
-3

Możesz również użyć w ten sposób,

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:[email protected]'; return false;">[email protected]</a>

Myślę, że to najlepszy sposób na rozwiązanie problemów z Chrome.

Dzięki..

Hiren Purohit
źródło
„0”, a nie „o” void(). Wydawało mi się, że to nie działa zbyt dobrze dla mnie. Czy jest coś jeszcze, co należy dodać?
Rob
-7

Sprawdź to:

Działa to w Chrome i we wszystkich przeglądarkach.

<a href="mailto:[email protected]">Test</a>

spróbuj pracować świetnie.

Bharat Parmar
źródło