2014-10-31 11 views
5

Tự động lấy nét, trong lý thuyết, hoàn toàn không được hỗ trợ trong điện thoại di động Safari (http://caniuse.com/#feat=autofocus). Chúng tôi đang nhìn thấy, tuy nhiên, hành vi rất kỳ lạ này, nơi khi một sự kiện touchstart là ràng buộc để document (xem chức năng có bất kỳ hành vi hay không) khi một nhấp chuột xảy ra bất cứ nơi nào trên trang đầu vào đầu tiên với autofocus trở nên tập trung và hiển thị bàn phím trên màn hình .Ràng buộc với một sự kiện touchstart gây tự động lấy nét tập trung vào bất kỳ nhấp chuột trong Mobile Safari

Điều này có thể được sao chép bằng iOS 8 trong trình mô phỏng iOS. Dưới đây là html tối thiểu và javascript để tạo lại vấn đề:

<html> 
<head> 
<script> 
document.addEventListener("touchstart", function() {}); 
</script> 
</head> 

<body> 
<input type="text"> 
<input type="text" autofocus="autofocus"> 
</body> 
</html> 

Và đây là một jsfiddle: http://jsfiddle.net/qd858nob/

Chỉ cần nhấp vào bất cứ nơi nào bên ngoài của đầu vào, và đầu vào thứ hai sẽ trở nên autofocused. Lý tưởng nhất là tôi muốn tìm một giải pháp toàn cầu để giải quyết điều này mà không cần phải loại bỏ tự động lấy nét từ tất cả các yếu tố đầu vào của chúng tôi.

+1

Tôi đánh về cơ bản cùng một vấn đề, nhưng bằng cách gọi .focus() theo chương trình khi tải trang. Ngay sau khi có liên lạc ở bất kỳ đâu trên trang, tiêu điểm sẽ chuyển đến đầu vào và bàn phím bật lên. Bạn đã báo cáo điều này với Apple chưa? Nó mới cho iOS 8. – Dan

Trả lời

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