Chrome 13 akhirnya menyertakan navigator.registerProtocolHandler
. API ini memungkinkan aplikasi web mendaftarkan diri sebagai kemungkinan pengendali untuk protokol tertentu. Misalnya, pengguna dapat memilih aplikasi Anda untuk menangani link "mailto".
Daftarkan skema protokol seperti:
navigator.registerProtocolHandler(
'web+mystuff', 'http://example.com/rph?q=%s', 'My App');
Parameter pertama adalah protokol. Yang kedua adalah pola URL aplikasi yang harus menangani skema ini. Pola harus menyertakan '%s' sebagai placeholder untuk data dan harus berada di origin yang sama dengan aplikasi yang mencoba mendaftarkan protokol. Setelah pengguna menyetujui akses, Anda dapat menggunakan link ini melalui aplikasi, situs lain, dll.:
<a href="web+mystuff:some+data">Open in "My App"</a>
Mengklik link tersebut akan membuat permintaan GET
ke http://example.com/rph?q=web%2Bmystuff%3A:some%20data
. Oleh karena itu, Anda harus mengurai parameter q
dan menghapus data dari protokol secara manual.
Perlu diperhatikan bahwa Firefox telah menerapkan navigator.registerProtocolHandler
sejak FF3. Salah satu perbedaan dalam penerapan Chrome adalah seputar protokol kustom. URL tersebut harus diawali dengan "web+", seperti yang terlihat pada contoh di atas. Protokol berikut tidak memerlukan awalan "web+": "mailto", "mms", "nntp", "rtsp", "webcal".
Informasi selengkapnya tentang API ini dapat ditemukan di artikel MDN.