Tôi đã xử lý vấn đề Javascript tồn tại liên quan đến việc theo dõi khi người dùng nhấp vào liên kết (trong trường hợp bạn tò mò, ở đây là: Why does using target="_blank" cause Javascript to fail?).Các nhược điểm của onMousedown so với onClick?
Tôi đã tìm ra rằng tôi có thể giải quyết vấn đề bằng cách theo dõi sự kiện onMousedown thay vì sự kiện onClick.
Tôi tò mò về những nhược điểm của phương pháp này. Những người tôi có thể nghĩ đến:
- Nếu người dùng nhấp vào liên kết và sau đó di chuyển chuột ra khỏi liên kết trước khi phát hành, sự kiện sẽ được ghi lại mặc dù người dùng không truy cập liên kết
- Nếu người dùng sử dụng phím tab để di chuyển sự tập trung của trình duyệt để liên kết và sau đó nhấn enter, bấm vào sẽ không được ghi
không những là phổ biến, vì vậy tôi không terribly lo lắng về chúng.
Có thiếu sót nào khác không?
Tôi đồng ý với bài đăng của bạn, nhưng nó phiền tôi rằng trang tìm kiếm của Google sử dụng onmousedown thay vì onclick để theo dõi các nhấp chuột, điều này cho thấy họ xử lý các vấn đề này hoặc ít nhất là xem xét thực hành tốt nhất trên thực tế. Có suy nghĩ gì không? – Dunc
Tôi không biết chính xác cách google theo dõi nhấp chuột, nhưng đây là một số điểm tôi có thể nghĩ về chúng bằng cách sử dụng onmousedown: Họ quan tâm đến nhấp chuột tổng hợp% độ tuổi - ít hoặc nhiều hơn không quan trọng. Sử dụng onclick/onmousedown, không có cách nào đáng tin cậy để biết liệu người dùng đã theo một liên kết hay không (sử dụng onclick có thể dẫn đến việc thiếu nhấp chuột phải + mở trong tab mới, bằng cách sử dụng mousedown có thể khiến mọi nhấp chuột phải được đăng ký như một liên kết theo sau). Tuy nhiên, nhấp chuột phải có thể có nghĩa là người dùng bằng cách nào đó quan tâm đến liên kết. – Raze
Ngoài ra, sự kiện mousedown cho phép thêm thời gian để gửi dữ liệu đến Google trước khi liên kết được theo sau (sự khác biệt nhỏ sau khi nhấn nút chuột và trước khi phát hành) - đủ để gửi yêu cầu đến máy chủ của Google. Không chắc chắn nếu onclick sẽ để lại đủ thời gian cho việc này. Lựa chọn thay thế, mà Yahoo thực hiện, là lần đầu tiên đưa bạn đến máy chủ của họ, và sau đó chuyển hướng bạn đến URL quan tâm của bạn. – Raze