ثبت یک کنترل کننده پروتکل سفارشی

Chrome 13 بالاخره شامل navigator.registerProtocolHandler می‌شود. این API به برنامه های وب اجازه می دهد تا خود را به عنوان کنترل کننده های احتمالی برای پروتکل های خاص ثبت کنند. به عنوان مثال، کاربران می توانند برنامه شما را برای مدیریت پیوندهای "mailto" انتخاب کنند.

ثبت یک طرح پروتکل مانند:

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

اولین پارامتر پروتکل است. دوم الگوی URL برنامه است که باید این طرح را مدیریت کند. این الگو باید شامل یک «%s» به‌عنوان جای‌بانی برای داده‌ها باشد و باید در همان مبدا برنامه‌ای باشد که می‌خواهد پروتکل را ثبت کند. هنگامی که کاربر دسترسی را تأیید کرد، می توانید از طریق برنامه خود، سایت های دیگر و غیره از این پیوند استفاده کنید:

<a href="web+mystuff:some+data">Open in "My App"</a>

با کلیک بر روی آن پیوند، یک درخواست GET به http://example.com/rph?q=web%2Bmystuff%3A:some%20data می شود. بنابراین، شما باید پارامتر q را تجزیه کنید و داده ها را به صورت دستی از پروتکل حذف کنید.

شایان ذکر است که فایرفاکس از زمان FF3 دارای navigator.registerProtocolHandler بوده است. یک تفاوت در پیاده سازی کروم در مورد پروتکل های سفارشی است. همانطور که در مثال بالا مشاهده می شود، باید با "web+" پیشوند شوند. پروتکل های زیر به پیشوند "web+" نیاز ندارند: "mailto"، "mms"، "nntp"، "rtsp"، "webcal".

اطلاعات بیشتر در مورد این API را می توانید در مقاله MDN بیابید.