Đăng ký trình xử lý giao thức tuỳ chỉnh

Chrome 13 cuối cùng cũng có navigator.registerProtocolHandler. API này cho phép các ứng dụng web tự đăng ký làm trình xử lý khả thi 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ý "mailto" .

Đăng ký lược đồ 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 thứ hai là mẫu URL của ứng dụng sẽ xử lý lược đồ này. Mẫu phải bao gồm "%s" làm phần giữ chỗ cho dữ liệu và dữ liệu này phải có cùng nguồn gốc với ứng dụng muốn đă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à xoay quanh các giao thức tuỳ chỉnh. Những thông số này cần phải có tiền tố là "web+", như trong ví dụ ở trên. Các giao thức sau đây không cần có "web+" tiền tố: "mailto", "mms", "nntp", "rtsp", "webcal".

Bạn có thể xem thêm thông tin về API này trong bài viết về MDN.