רישום handler מותאם אישית לפרוטוקול

Chrome 13 כולל סוף סוף את navigator.registerProtocolHandler. ה-API הזה מאפשר לאפליקציות אינטרנט לרשום את עצמן כרכיבי handler אפשריים לפרוטוקולים מסוימים. לדוגמה, משתמשים יכולים לבחור שהאפליקציה שלכם תטפל ב-"mailto" קישורים.

רושמים סכמה של פרוטוקול, כמו:

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

הפרמטר הראשון הוא הפרוטוקול. השנייה היא תבנית כתובת ה-URL של האפליקציה שאמורה לטפל בסכמה הזו. הדפוס צריך לכלול '%s' בתור placeholder של נתונים, ועליה להיות באותו המקור שבו נמצאת האפליקציה שמנסה לרשום את הפרוטוקול. אחרי שהמשתמש יאשר את הגישה, ניתן יהיה להשתמש בקישור הזה דרך האפליקציה, אתרים אחרים וכו':

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

לחיצה על הקישור הזה שולחת בקשת GET אל http://example.com/rph?q=web%2Bmystuff%3A:some%20data. לכן צריך לנתח את הפרמטר q ולהסיר נתונים מהפרוטוקול באופן ידני.

כדאי לציין שב-Firefox הוטמעו navigator.registerProtocolHandler מאז FF3. אחד ההבדלים באופן ההטמעה של Chrome הוא פרוטוקולים מותאמים אישית. התחילית של הדפים האלה צריכה להיות "web+ ", כפי שאפשר לראות בדוגמה שלמעלה. בפרוטוקולים הבאים אין צורך ב-'web+ ' תחילית: "mailto", "mms", "nntp", "rtsp", "webcal".

מידע נוסף על ה-API הזה זמין במאמר על MDN.