2017-02-07 26 views
6

Khi sử dụng Safari (iOS 10,2) và nhấp vào một liên kết mailto xác nhận nhanh chóng được hiển thị với thông báo sau: "Trang web này đã bị chặn từ tự động soạn email"Safari mailto: "Trang web này đã bị chặn tự động soạn email".

Bỏ qua/Cho phép

Tôi muốn loại bỏ điều này trên trang web của riêng mình và không biết phải làm gì. Nó có thể được tái tạo với Safari, ví dụ: trên bất kỳ bài viết nào của BBC, nhấp vào biểu tượng thư.

Screenshot of dialogue on iPad

nghiên cứu web của tôi đưa tôi đến những liên kết này:

https://discussions.apple.com/thread/7763735

WillieFromColo 11 tháng 1 năm 2017 08:25 để đáp ứng với Russ G

Các vấn đề với Safari và "Trang web này đã bị chặn từ tự động soạn email". Nghiên cứu của tôi trên Google cho thấy rằng thông báo Loại Lỗi này bắt đầu xảy ra trong khoảng tháng 11 với bản cập nhật lên Safari, có khả năng xảy ra đồng thời với bản cập nhật của Apple cho iOS 10.2. Kể từ hôm nay (1/11/17) là phiên bản iOS mới nhất cho iPad và có lẽ cũng là iPhone.

[...]

https://developer.apple.com/safari/technology-preview/release-notes/#r15

phát hành 15 URL Xử lý

Navigations để tel: và mailto: liên kết với doanh nghiệp yêu cầu người dùng cử chỉ; điều hướng không có cử chỉ người dùng sẽ hiển thị lời nhắc xác nhận

Vì vậy, nó có vẻ giống như một "tính năng" của Safari. Có ai biết làm thế nào để ngăn chặn dấu nhắc này?

+1

Theo báo giá cuối cùng của bạn, hãy sử dụng cử chỉ của người dùng. (một nút bấm, một cái gì đó để di chuyển ...) – Kaiido

+0

Tôi có một html đơn giản, vanilla javascript và so what can i do to avoid this annoying alert on Safari –

Trả lời

4

Các thư viện JavaScript của bên thứ ba khác nhau sẽ chặn các nhấp chuột trên các thuộc tính a để ngăn điều hướng ngắn gọn trong khi gửi dữ liệu đến máy chủ. Thông thường, họ lập trình kích hoạt điều hướng qua window.location.replace.

Thay đổi trong Safari bật cảnh báo khi liên kết mailto/tel được kích hoạt theo cách này.

tương tác nhưng điều này thường bị dừng với preventDefault và Safari không quan tâm.

Nếu bạn đang sử dụng thư viện gây ra sự cố này, hãy liên hệ với người sáng tạo và xem họ có thể cập nhật nó để bỏ qua preventDefault trên liên kết mailto/tel hay không.

+1

Our fallback system for reporting errors uses dynamically generated mailto links, and it would seem that not only preventDefault causes this but also changing the href location after the click but before the event triggers causing this behavior. – rovermicrover

+0

In my context, this appears to be caused by HTML not by Javascript. The tag in question looks basically like this: '[email protected] '. –

+1

@ChrisPrince chính xác, thẻ là chính xác, vấn đề là người nghe sự kiện có thể nghe các nhấp chuột trên thẻ đó và sửa đổi kết quả để href không được theo sau bởi "tương tác người dùng" mà thay vào đó là JavaScript thay đổi cửa sổ .location sau khi nhấp chuột được kích hoạt. – jmc

2

Điều tôi không đề cập ban đầu là chúng tôi đã gọi mailto từ phần JavaScript của trang bên ngoài. Bây giờ chúng tôi đã cố gắng giải quyết vấn đề này bằng cách thay đổi sang một thẻ HTML dựa trên mailto (với chủ đề và chủ đề) và bây giờ bằng cách nào đó nó hoạt động mà không cần quay số đó. Vì vậy, tôi giả định vấn đề này được giải quyết cho bản thân mình, nhưng tôi mở cho bất kỳ gợi ý nào giải thích lý do. Hiện tại tôi không đánh dấu câu trả lời này là giải pháp.

0

Đã xảy ra vì sử dụng vì chúng tôi đã sử dụng window.open(...) để mở liên kết đó trong cửa sổ mới.

Thay thế thành window.location.href = ... chỉ dành cho Safari: facepalm :.

Các vấn đề liên quan