2008-09-05 72 views

Trả lời

6

Sử dụng JQuery có thể không phải là tuyến đường bạn muốn thực hiện vì điều này sẽ ở phía khách hàng ... Có lý do nào bạn không mã hóa ở phía máy chủ không?

+1

Đúng - việc sử dụng JQuery để mã hóa địa chỉ email sẽ vô ích, khi thấy bất kỳ Bot loại bỏ HTML của bạn sẽ không chạy JQuery. – samjudson

10

Vâng, cũng giống như nhận xét, bạn có thể muốn nguồn có địa chỉ email bị che giấu và sau đó sử dụng jQuery để sửa hoặc xây dựng liên kết để có địa chỉ chính xác ... vì bot sẽ xem mã nguồn chứ không phải kết quả chạy javascript của bạn ;-)

0

Nazis ngữ nghĩa sẽ nói "mã hóa", không phải "mã hóa". Mã hóa ngụ ý một bí mật là cần thiết để giải mã. Chuyển đổi thành HTML entity syntax sẽ là một quy trình mã hóa phong nha để tránh những con người tò mò, nhưng rô bốt có thể dễ dàng giải mã nó.

0

Để khôi phục lại những gì Mike Stone đề xuất, tôi sẽ mã hóa nó ở phía máy chủ và có thứ gì đó ở phía máy chủ sẽ giải mã và trả về dưới dạng JSON (jsonresult in mvc khuôn khổ, dịch vụ web, http xử lý, bất cứ điều gì). Bằng cách đó bạn có thể sử dụng jQuery để loại bỏ các địa chỉ e-mail khi bạn muốn nhưng nó sẽ vẫn gây nhầm lẫn cho bất kỳ bot nào không hỗ trợ tập lệnh java. Một lần nữa đây không phải là một giải pháp chống đạn nhưng nó có thể làm những gì bạn đang tìm kiếm.

0

Điều tôi đã làm là làm xáo trộn nó khi nó được hiển thị và ẩn nó, sau đó sử dụng javascript để sửa lỗi và hiển thị liên kết.

Ví dụ, bạn có thể làm điều này từ máy chủ:

<a href="mailto:some_address^^some_domain$$com" style='display:none'>Email me</a> 

sau đó sử dụng Javascript, bạn có thể sử dụng regex để trao đổi ^^ cho @$$ cho .

Dù chương trình bạn có thể đưa ra ý có lẽ là tốt. Tất nhiên nếu bot hiểu javascript thì dù sao cũng không thành vấn đề.

Bạn sẽ chặn 95% bot chạy theo cách của bạn và những người dùng còn lại của bạn sẽ thấy địa chỉ là tốt.

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