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:test@test.com'>hi this is a test</a>

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


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.


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.


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


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.


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


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


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”


A co z outlook.com?
Kyle Delaney


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!


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.


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


0

Zwykłe <a href="mailto:hi@hi.com"></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.


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ć').


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:aaaaaa@aaaaaa.net', '_blank');
}
</script>

U mnie zadziałało jak urok!


-3

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

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:info@example.com'; return false;">info@example.com</a>

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

Dzięki..


„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:test.test@gmail.com">Test</a>

spróbuj pracować świetnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.