Navigatorï¼registerProtocolHandler() æ¹æ³
æéå¯ç¨
æ¤ç¹æ§ä¸å±äºåºçº¿ï¼å 为å®å°æªå¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æã
Want more browser support for this feature? Tell us why.
å®å ¨ä¸ä¸æ: æ¤ç¹æ§ä» å¨ä¸äºæ¯æçæµè§å¨çå®å ¨ä¸ä¸æï¼HTTPSï¼ä¸å¯ç¨ã
Navigator ç registerProtocolHandler() æ¹æ³è®© web ç«ç¹ä¸ºèªèº«æ³¨åç¨äºæå¼æå¤çç¹å® URL æ¹æ¡ï¼åååè®®ï¼çè½åã
举个ä¾åï¼æ¤ API å
许 Web é®ä»¶ç«ç¹æå¼ mailto: URLï¼æè®© VoIP ç«ç¹æå¼ tel: URLã
è¦æ³¨ååè®®å¤çå¨ï¼ç½ç«å¨è°ç¨ registerProtocolHandler() æ¶ä¼ å
¥è¦æ³¨åçåè®®åæ¨¡æ¿ URLã
å¨ç¨æ·æ¿æ´»ä½¿ç¨æ¥æ³¨åçåè®®ç龿¥æ¶ï¼æµè§å¨ä¼å°æ¿æ´»é¾æ¥ç href æå
¥å°å¤ç卿³¨åæ¶æä¾ç URL 模æ¿ä¸ï¼å¹¶å°å½å页é¢å¯¼èªå°çæç URLã
æµè§å¨å¯è½ä¼è¦æ±ç¨æ·ç¡®è®¤æ¯å¦å 许页é¢å¤ç该åè®®ï¼æ 论æ¯å¨æ³¨ååè®®æ¶è¿æ¯å¨ç¨æ·æ¿æ´»é¾æ¥æ¶ã
è¯æ³
registerProtocolHandler(scheme, url)
åæ°
scheme-
ä¸ä¸ªå å«ç«ç¹å¸æå¤ççåè®®çæ¹æ¡å符串ã
å ¶å¯è½æ¯ä¸ä¸ªèªå®ä¹æ¹æ¡ï¼æ¤æ¶æ¹æ¡çåç§°ï¼
- 以
web+å¼å§ - å¨
web+åç¼ä¹åè³å°å å«ä¸ä¸ªåæ¯ - ä» å å«å°åç ASCII 忝ã
å¦åï¼æ¹æ¡å¿ é¡»æ¯ä»¥ä¸å¼ä¹ä¸ï¼
bitcoinftpftpsgeoimircircsmagnetmailtomatrixmmsnewsnntpopenpgp4fprsftpsipsmssmstosshtelurnwebcalwtaixmpp
- 以
url-
ä¸ä¸ªå å«å¤çå¨ URL çå符串ã该 URL å¿ é¡»å å«
%sï¼ä½ä¸ºå ä½ç¬¦ï¼ï¼å ¶ä¼è¢«å°è¦å¤çä¸ç»è¿è½¬ä¹ç URL ææ¿æ¢ãå¤çå¨ URL å¿ é¡»ä½¿ç¨
httpsæ¹æ¡ï¼å¹¶ä¸å¿ é¡»ä¸å°è¯æ³¨åå¤çå¨çç½é¡µå ·æç¸åçæ¥æºã
è¿åå¼
æ ï¼undefinedï¼ã
å¼å¸¸
SecurityErrorDOMException-
ç¨æ·ä»£ç黿¢äºæ³¨åãè¿å¯è½æ¯ç±äºï¼
- æ³¨åæ¹æ¡ï¼åè®®ï¼æ æï¼ä¾å¦æ¯æµè§å¨èªèº«æå¤ççæ¹æ¡ï¼
https:ãabout:çï¼ã - å¤çå¨ URL çæ¥æºä¸è°ç¨è¯¥ API ç页é¢çæ¥æºä¸å¹é ã
- å¤çå¨ URL çæ¹æ¡ä¸æ¯
httpsã
- æ³¨åæ¹æ¡ï¼åè®®ï¼æ æï¼ä¾å¦æ¯æµè§å¨èªèº«æå¤ççæ¹æ¡ï¼
SyntaxErrorDOMException-
å¤çå¨ URL ä¸ç¼ºå¤±å ä½ç¬¦
%sã
示ä¾
>为 mailto å议注åå¤çå¨
ç½é¡µä½¿ç¨é https åè®®æ¥é¾æ¥èµæºæ¯é常常è§çãä¾å¦ï¼mailto: åè®®ãå½ Web ä½è
æ³è¦ä¸ºç¨æ·æä¾ä¸ä¸ªç´æ¥éè¿ç½é¡µåéçµåé®ä»¶çä¾¿æ·æ¹å¼æ¶ï¼å¯ä»¥ä½¿ç¨ mailto 龿¥ï¼
<a href="mailto:webmaster@example.com">Web 管çå</a>
å½é¾æ¥è¢«æ¿æ´»æ¶ï¼æµè§å¨åºè¯¥å¯å¨é»è®¤çæ¡é¢åºç¨ç¨åºæ¥å¤ççµåé®ä»¶ãä½ å¯ä»¥è®¤ä¸ºè¿æ¯ä¸ä¸ªåºäºæ¡é¢å¹³å°åè®®å¤çå¨ã
åºäº Web çåè®®å¤çå¨å
许åºäº Web çåºç¨ç¨åºåä¸è¿ä¸è¿ç¨ãä¾å¦ï¼mail.example.org ä¸ççµåé®ä»¶ Web åºç¨ç¨åºå¯ä»¥ä½¿ç¨ä»¥ä¸ä»£ç æ³¨åæ¥å¤ç mailto 龿¥ï¼
navigator.registerProtocolHandler("mailto", "https://mail.example.org/?to=%s");
æ¤åï¼å½ç¨æ·ç¹å»ç½ç«ä¸ç mailto 龿¥æ¶ï¼æµè§å¨å°ï¼å¯è½è¦æ±æµè§å¨è¿è¡ç¡®è®¤ï¼å¯¼èªå° https://mail.example.org/?to=mailto:webmaster@example.comãæ¤é¡µé¢å¯ä»¥è§£æ URL åæ°æ¥æåå°åï¼å¹¶ä½¿ç¨æ¤å°åæ¥åå§åçµåé®ä»¶ã
为èªå®ä¹å议注åå¤çå¨
å¨è¿ä¸ªç¤ºä¾ä¸ï¼é¡µé¢ä½¿ç¨ä»¥ä¸ä»£ç æ¥æ³¨å web+burger åè®®çå¤çå¨ï¼
navigator.registerProtocolHandler(
"web+burger",
"https://burgers.example.org/?burger=%s",
);
éåï¼ç¨æ·è®¿é®å å«å¦ä¸é¾æ¥ç页é¢ï¼
<a href="web+burger:cheeseburger">è士æ±å ¡</a>
å¦æç¨æ·æ¿æ´»äº web+burger 龿¥ï¼æµè§å¨å°ï¼å¯è½è¦æ±æµè§å¨è¿è¡ç¡®è®¤ï¼å¯¼èªå° https://burgers.example.org/?burger=web+burger:cheeseburgerã
è§è
| è§è |
|---|
| HTML > # custom-handlers > |