Cuối cùng, Chrome 13 cũng đã có navigator.registerProtocolHandler
. API này cho phép ứng dụng web tự đăng ký làm trình xử lý có thể cho các giao thức cụ thể. Ví dụ: người dùng có thể chọn ứng dụng của bạn để xử lý đường liên kết "mailto".
Đăng ký một giao thức như:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Tham số đầu tiên là giao thức. Mẫu URL thứ hai là của ứng dụng sẽ xử lý lược đồ này. Mẫu này phải bao gồm "%s" làm phần giữ chỗ cho dữ liệu và phải có cùng nguồn gốc với ứng dụng đang cố gắng đăng ký giao thức. Sau khi người dùng phê duyệt quyền truy cập, bạn có thể sử dụng đường liên kết này thông qua ứng dụng của mình, thông qua trang web khác, v.v.:
<a href="web+mystuff:some+data">Open in "My App"</a>
Khi nhấp vào đường liên kết đó, một yêu cầu GET
sẽ được gửi đến http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Do đó, bạn phải phân tích cú pháp tham số q
và xoá dữ liệu khỏi giao thức theo cách thủ công.
Lưu ý: Firefox đã triển khai navigator.registerProtocolHandler
kể từ FF3. Một điểm khác biệt trong cách triển khai của Chrome là về giao thức tuỳ chỉnh. Các URL đó cần có tiền tố là "web+", như trong ví dụ trên. Các giao thức sau không cần tiền tố "web+": "mailto", "mms", "nntp", "rtsp", "webcal".
Bạn có thể xem thêm thông tin về API này trong bài viết trên MDN.