การลงทะเบียนเครื่องจัดการโปรโตคอลที่กำหนดเอง

Chrome 13 ในที่สุดก็มี navigator.registerProtocolHandler แล้ว API นี้ช่วยให้เว็บแอปลงทะเบียนตัวเองเป็นตัวแฮนเดิลที่เป็นไปได้สำหรับโปรโตคอลหนึ่งๆ ได้ เช่น ผู้ใช้สามารถเลือกแอปพลิเคชันของคุณให้จัดการลิงก์ "mailto"

ลงทะเบียนรูปแบบโปรโตคอล เช่น

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

พารามิเตอร์แรกคือโปรโตคอล ส่วนรายการที่ 2 คือรูปแบบ 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 และดึงข้อมูลออกจากโปรโตคอลด้วยตนเอง

โปรดทราบว่า Firefox มีการใช้งาน navigator.registerProtocolHandler มาตั้งแต่ FF3 ความแตกต่างอย่างหนึ่งในการใช้งานของ Chrome คือโปรโตคอลที่กำหนดเอง โดยต้องขึ้นต้นด้วย "web+" ดังที่แสดงในตัวอย่างด้านบน โปรโตคอลต่อไปนี้ไม่จําเป็นต้องมีคํานำหน้า "web+" "mailto", "mms", "nntp", "rtsp", "webcal"

ดูข้อมูลเพิ่มเติมเกี่ยวกับ API นี้ได้ในบทความ MDN