Liên kết Mailto không làm gì trong Chrome nhưng hoạt động trong Firefox?


149

Có vẻ như các mailtoliên kết chúng tôi nhúng vào trang web của chúng tôi không làm được gì trong Chrome, mặc dù chúng hoạt động trong Firefox.

Ví dụ đơn giản tại đây: http://jsfiddle.net/wAPNH/

<a href='mailto:test@test.com'>hi this is a test</a>

Chúng ta có cần phải làm gì đó đặc biệt để bật liên kết thư trong Chrome không?


Hoạt động tốt với tôi, bạn có một số tiện ích mở rộng trên Chrome hoặc thứ gì đó sẽ can thiệp không?
Ryan Keem

Ứng dụng nào mở trong FF khi bạn nhấp vào liên kết mailto?
mohkhan

1
Tôi đã thử trong chrome 28 và liên kết JSfiddle hoạt động tốt với tôi (chạy trên mac và mở mail.app cũng ổn).
sasbury

Tôi thấy rằng việc đó mailto:test%40test.comphù hợp hơn
Pro Q

Câu trả lời:


128

Đây là cài đặt trình duyệt cụ thể, tức là nó sẽ hoạt động khác nhau tùy thuộc vào cài đặt trình duyệt của người dùng. Người dùng có thể thay đổi cách mailto:các liên kết hoạt động trong chrome bằng cách truy cập chrome://settings/handlershoặcChrome Settings->Content Settings->Manage Handlers...

Nếu "email" không được liệt kê trên trang đó, thì hãy xem câu trả lời này về cách tiến hành.


7
tuyệt, hành vi mặc định là gì?
Crashalot

8
Tôi tin rằng mặc định là để chạy ứng dụng thư khách trên máy tính. Tôi biết trong công việc, nó sẽ chạy sấm sét; Nếu họ đã cài đặt triển vọng, nó có thể chạy triển vọng, v.v ... Cá nhân, nó không chạy gmail theo mặc định, tôi phải thiết lập theo cách đó.
kennypu

2
@Crashalot không. một liên kết mailto là một liên kết mailto
kennypu

48
Mở chrome: // settings / handlers cung cấp cho tôi một hộp trống không có tùy chọn để thêm trình xử lý. Có vẻ như Chrome bị hỏng nặng ở đây: đơn giản là nó sẽ không mở trình gửi thư được định cấu hình của tôi (Thunderbird) để đáp lại liên kết gửi thư.
Peter Flynn

3
@PeterFlynn có vẻ như chrome bây giờ sẽ cố chạy ứng dụng thư khách mặc định được cài đặt trên máy tính. Đảm bảo thunderbird được đặt làm ứng dụng thư khách mặc định. Xem liên kết này về cách thực hiện điều đó: kb.mozillazine.org/Default_mail_client#Windows
kennypu

107

Điều này là do chrome xử lý mailto theo cách khác nhau. Bạn có thể đi đến chrome://settings/handlersvà chắc chắn rằng đó là trình xử lý mặc định. Trong trường hợp của bạn, nó sẽ không có gì (tức là không được liệt kê). Bây giờ hãy truy cập gmail.com. Bạn sẽ thấy một cái gì đó như thế này khi bạn nhấp vào nút bên cạnh nút đánh dấu.

Đặt mailto trong chrome

Nếu bạn muốn mở tất cả các liên kết email thông qua gmail, hãy đặt "Sử dụng Gmail". Bây giờ khi bạn nhấp vào nút mailto, chrome sẽ tự động mở trong gmail.


1
Điều này làm việc với tôi, không có gmail đầu tiên và nhấp vào "cho phép gmail ..." không có trình xử lý nào trong cài đặt được thay đổi-
chrismarx

1
Gmail? Gmail có liên quan gì với điều này? Tôi muốn Chrome mở Thunderbird thay vì mở phiên bản Chrome mới.
Peter Flynn

Goto chrome: // settings / handler để đặt trình xử lý của bạn.
Rajesh Hegde

1
@ Gi1ber7 Bạn có thể truy cập chrome: // settings / handlers để thay đổi cài đặt mailto.
Rajesh Hegde

1
tôi không có người xử lý ở đó wth
Boris Gafurov

42

Trong trường hợp của tôi, chrome được liên kết dưới dạng giao thức MAILTO trong Windows 10 .

Tôi đã thay đổi liên kết thành Outlook bằng "Chương trình mặc định" -> "Liên kết loại tệp hoặc giao thức với chương trình" .

MAILTO là cách dưới đây trong danh sách. Ảnh chụp màn hình này có thể giúp đỡ.

nhập mô tả hình ảnh ở đây


Được rồi, nhưng nếu chúng ta muốn nó mở trong một trang web cụ thể chứ không phải là một ứng dụng thì sao?
Kyle Delaney

2
Sử dụng Windows 10, tôi phải chọn Outlook trong danh sách bên trái trước khi tôi có thể thấy hộp kiểm giao thức 'mailto' trong danh sách bên phải.
Tom McDonald

15

Tôi cũng gặp vấn đề này và cuối cùng đã theo dõi nó đến thực tế là liên kết của tôi nằm trong iframe và ứng dụng web của tôi sử dụng https. Chrome đã chặn nó do điều này (Chrome sẽ mở các liên kết thư khác bên ngoài iframe).

Trong liên kết mailto không hoạt động trong khung chrome (trên https) , kendsnyder đã đề cập thay đổi đơn giản

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

đến

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

Voila, vấn đề được giải quyết. Liên kết mailto đó hiện hoạt động trong tất cả các trình duyệt.


Tôi tò mò nếu sử dụng target=_parent"cũng sẽ làm việc. Tìm tốt
Termato

Cảm ơn. Làm việc tuyệt vời. @Termato, nó có thể sẽ hoạt động nếu nó là khung "trên cùng". Chỉ cần sử dụng target="_top"hoặc nếu sử dụng JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe

Bây giờ target = "_ top" cũng không hoạt động :( bất kỳ cách giải quyết thay thế nào khác. Tôi đã thử với "_parent" và nó cũng không hoạt động.
Vijay Mishra

target="_top"làm việc cho tôi trong một iframe trong Google Chrome
John Doherty

@Basj hoạt động tốt trên Chrome (mới nhất) của tôi. Bạn có một ứng dụng thư mặc định trên máy tính của bạn?
Thomas Ayoub

13

Bạn cần cho phép gmail cài đặt trình xử lý dịch vụ cho giao thức mailto:

1) đi đến gmail

2) nhấp vào biểu tượng hình thoi nhỏ ở cuối thanh địa chỉ (ảnh chụp màn hình)

3) thưởng thức

nhập mô tả hình ảnh ở đây


tôi không thấy điều đó
Boris Gafurov

@BorisGafurov phiên bản Chrome của bạn có được cập nhật không?
jj_

7

Bạn có thể thử đi chrome://settings/handlersvà giá trị thiết lập cho mailto:tới nonethay vìgmail


7
Tương tự ở đây: chrome 27 không có trình xử lý cho mailto được xác định hoặc bất cứ điều gì khác cho vấn đề đó ..wierd, có thể mặc định bảo mật mới trong chrome. Trong FF tôi cũng phải thêm nó bằng tay.
Robert Hoffmann

Tương tự ở đây. Chrome về cơ bản bị hỏng các liên kết mailt wrt
Peter Flynn

6

Khắc phục sự cố cho tôi vì trình xử lý Giao thức của tôi trống

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

Xem redfish43 trả lời, để tổng hợp

Đối với mailto: - Đảm bảo bạn đã đăng nhập vào Gmail và cửa sổ hoạt động là trang Gmail chính của bạn (hoặc sẽ không có gì xảy ra). - Sao chép / dán này vào thanh địa chỉ:

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

Thêm javascript: vào mặt trước một lần nữa nếu cần, bởi vì khi bạn dán nó, Chrome có thể đã cắt mọi thứ trước đó và bao gồm cả dấu hai chấm. Sau đó nhấn enter.

Khi cửa sổ bật lên mở ra, nhấp vào "Cho phép"


Còn đối với triển vọng.com thì sao?
Kyle Delaney

3

Tôi đã từng gặp vấn đề tương tự. Vấn đề, bởi một số lý do kỳ lạ, Chrome đã tự biến mình thành công cụ mặc định để mở liên kết mailto :. Giải pháp, đặt ứng dụng thư khách của bạn làm ứng dụng mặc định để mở. Cách: http://windows.microsoft.com/en-nz/windows/change-default-programs#1TC=windows-7

Chúc may mắn


cảm ơn điều này rất hữu ích, đã không thành công khi thử tất cả những thứ hạng cao hơn trước khi tôi đến đây :(.
Boris Gafurov

2

Tôi tìm thấy câu trả lời này trên một diễn đàn Google đã làm việc cho tôi. Trong phần chú thích, nó đề cập đến 'googl OKs.exe' - Tôi không có cái này và nó vẫn hoạt động. Chỉ cần làm theo các hướng dẫn bên dưới nhưng đóng tất cả các ứng dụng trước khi thay đổi Registry. Ngoài ra tôi đã lưu giá trị hiện tại chỉ trong trường hợp nó không hoạt động.


Chỉ cần nhập "chạy" trong thanh tìm kiếm của bạn, sau đó nhập "regedit" rồi đi đến:

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

chỉnh sửa (nhấp đúp chuột) "(Mặc định)" thành:

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

Đó là nó! Lưu và đóng nó và nó sẽ hoạt động tốt đẹp!

Sử dụng phương pháp này giúp bạn không phải tải xuống Trình thông báo GMail, đối với những người trong chúng tôi có GTalk không cần vì nó làm điều đó cho chúng tôi. Tôi không chắc tại sao Google không thể giải quyết vấn đề này một cách dễ dàng .. Tôi đã nghe nói Ứng dụng Google chưa được kiểm tra đầy đủ trên Windows 7 nhưng rõ ràng cùng một thẻ hoạt động với nó.

Lưu ý: Điều duy nhất với giải pháp này là bạn cần có tệp googl OKs.exe trên máy của mình. Tôi tin rằng tôi đã nhận được nó với GooglePack miễn phí từ trang web của họ hiện đã bị ngừng. Tôi đã thử tìm kiếm trên mạng để tìm cách tải xuống nhưng thật kỳ lạ là dường như nó chỉ dành riêng cho các Doanh nghiệp và không có liên kết tải xuống nào có sẵn từ web bởi vì tất cả những người đã phát trực tuyến bằng google updater .. Odd. Dù sao chúc may mắn!


1

Một giải pháp khác là triển khai điều khiển cửa sổ bật lên / biểu mẫu / người dùng tùy chỉnh của riêng bạn sẽ được diễn giải phổ biến trên tất cả các trình duyệt.

Cấp điều này sẽ không tận dụng khả năng "mailto" ngoài khả năng của hộp. Tất cả phụ thuộc vào sự tuân thủ sẵn có mà bạn đang làm việc chống lại. Thật không may cho bản thân tôi - mailto cần phải có sẵn cho mọi người theo mặc định mà không "gây phiền hà cho khách hàng".

Quyết định của bạn cuối cùng.


1

Trên macOS, hãy kiểm tra cài đặt Mail.app, Ứng dụng nào được chọn làm Ứng dụng email mặc định / được liên kết với mailto:các liên kết:

Nếu bạn đã từng nhấp vào thông báo đó trên Gmail, cho phép mở các liên kết trong Gmail thay vì Ứng dụng của bạn - và sau khi thiết lập lại trình xử lý Chrome này , bạn phải chỉnh sửa thủ công trong Cài đặt Mail.app của mình.

Ảnh chụp màn hình


0

Thông thường <a href="mailto:hi@hi.com"></a>sẽ hoạt động, nhưng hãy nhớ bạn phải có một chương trình email mặc định được đặt trên máy tính của bạn. Ví dụ, tôi đang sử dụng Ubuntu 14.04 và email mặc định là thunderbird, hoạt động tốt.


0

'Sử dụng Chrome, mời rắc rối' - Ẩn danh. (Chỉ là một tài liệu tham khảo mang tính biểu tượng)

Chà, Chrome nổi tiếng với rất nhiều tiện ích hỗ trợ bảo mật mặc định và đó là vấn đề của bạn bắt nguồn từ đó.

Tuy nhiên, điều này có thể được hoàn tác bằng cách 'đặt ứng dụng email mặc định' (vì ứng dụng email mặc định không được đặt) hoặc bằng cách thiết lập trình xử lý mặc định trong 'chrome: // settings / handlers' (theo mặc định, nó được đặt thành ' Làm lơ').


1
Vâng, đây là một trong những lý do thường xuyên nhất. Và, giải pháp đề xuất chắc chắn sẽ làm việc.

0

Tôi đã giải quyết vấn đề bằng cách sử dụng mã này:

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

<script>
function email() {
    var str = window.open('mailto:aaaaaa@aaaaaa.net', '_blank');
}
</script>

Nó làm việc cho tôi như một cơ duyên!


-3

Bạn cũng có thể sử dụng như thế này,

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

Tôi nghĩ rằng đây là cách tốt nhất để giải quyết các vấn đề về chrome.

Cảm ơn..


'0', không phải 'o' trong void(). Điều này dường như không làm việc rất tốt cho tôi. Có cái gì khác cần phải được thêm vào?
Cướp

-7

Vui lòng kiểm tra nó:

Điều này đang làm việc trong chrome và tất cả các trình duyệt.

<a href="mailto:test.test@gmail.com">Test</a>

cố gắng và làm việc tuyệt vời

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.