OpenSearch æè¿°æ ¼å¼
OpenSearch æè¿°æ ¼å¼å¯ç¨äºæè¿°æç´¢å¼æç Web æ¥å£ãè¿å 许ç½ç«æè¿°ä¸ä¸ªå®èªå·±çæç´¢å¼æï¼æµè§å¨æè å ¶ä»å®¢æ·ç«¯åºç¨å¯ä»¥ä½¿ç¨è¿ä¸ªæç´¢å¼æãOpenSearch è³å°åå° FirefoxãSafari å Chrome çæ¯æãï¼åè§åèèµæä»¥è·åå ¶ä»æµè§å¨ææ¡£ç龿¥ãï¼
Firefox è¿æ¯æ OpenSearch æ åå
å°æªå
å«çé¢å¤ç¹æ§ï¼å¦æç´¢å»ºè®®å <SearchForm> å
ç´ ï¼ãè¿ç¯æç« ä¼èç¦å¨å¦ä½åå»ºæ¯æ Firefox çé¢å¤ç¹æ§ä¸å OpenSearch æ ¼å¼å
¼å®¹çæç´¢æä»¶ã
OpenSearch æè¿°æä»¶è½èªå¨åç°æç´¢æä»¶ä¸æè¿°çæ¹å¼å®è£ ã
è¦åï¼OpenSearch æä»¶å·²ç»æ æ³ä¸ä¼ å° addons.mozilla.orgï¼AMOï¼ä¸äºãæç´¢å¼æç¹æ§å¿
é¡»ä½¿ç¨ WebExtension APIï¼ä¸å¨ manifest.json æä»¶ä¸ä½¿ç¨ chrome 设置ã
OpenSearch æè¿°æä»¶
æè¿°æç´¢å¼æç XML æä»¶éµå¾ªä»¥ä¸åºæ¬æ¨¡æ¿ãå¨ [æ¹æ¬å·] å çé¨ååºéå¯¹ä½ ç¼åçç¹å®æä»¶è¿è¡èªå®ä¹ã
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>[SNK]</ShortName>
<Description>[æç´¢å¼æçå
¨ååæ»ç»]</Description>
<InputEncoding>[UTF-8]</InputEncoding>
<Image width="16" height="16" type="image/x-icon">[https://example.com/favicon.ico]</Image>
<Url type="text/html" template="[searchURL]"/>
<Url type="application/x-suggestions+json" template="[suggestionURL]"/>
<moz:SearchForm>[https://example.com/search]</moz:SearchForm>
</OpenSearchDescription>
- ShortName
-
æç´¢å¼æç®ç§°ãå ¶å¿ é¡»æ¯ 16 ä¸ªææ´å°å符ççº¯ææ¬ï¼æ²¡æ HTML æå ¶ä»æ è®°ã
- Description
-
æç´¢å¼æçç®è¦æè¿°ãå ¶å¿ é¡»æ¯ 1024 ä¸ªææ´å°å符ççº¯ææ¬ï¼æ²¡æ HTML æå ¶ä»æ è®°ã
- InputEncoding
-
å¨å°è¾å ¥æäº¤ç»æç´¢å¼ææ¶ä½¿ç¨çå符ç¼ç ã
- Image
-
æç´¢å¼æå¾æ ç URLãå¨å¯è½çæ åµä¸ï¼å å«ä¸ä¸ª 16x16 ç
image/x-iconç±»åç徿 ï¼ä¾å¦/favicon.icoï¼ï¼ä»¥åä¸ä¸ª 64x64 çimage/jpegæimage/pngç±»åç徿 ãURL ä¹å¯ä»¥ä½¿ç¨
data:URL æ¹æ¡ãï¼ä½ å¯ä»¥å¨data:URL kitchen ç´æ¥ä»å¾æ æä»¶çædata:URLãï¼xml<Image height="16" width="16" type="image/x-icon">https://example.com/favicon.ico</Image> <!-- æ --> <Image height="16" width="16">data:image/x-icon;base64,AAABAAEAEBAAA ... DAAA=</Image>Firefox 以 base64
data:URL å½¢å¼ç¼å徿 ï¼æç´¢æä»¶åå¨äºé ç½®æä»¶çsearchplugins/æä»¶å¤¹ä¸ï¼ã宿åï¼http:åhttps:ç URL ä¼è¢«è½¬æ¢ä¸ºdata:URLã夿³¨ï¼å¯¹äºè¿ç¨å è½½ç徿 ï¼å³ï¼æ¥èª
https://URL è䏿¯data:URLï¼ï¼Firefox å°æç»è¶ è¿ 10 KB ç徿 ã
- Url
-
æè¿°æç´¢ç¨ç URLã
template屿§æç¤ºæç´¢æ¥è¯¢çåºæ¬ URLãFirefox æ¯æä¸ç§ URL ç±»åï¼
type="text/html"æå®çå®æç´¢æ¥è¯¢ç URLãtype="application/x-suggestions+json"æå®ç¨ä»¥è·åæç´¢å»ºè®®ç URLãå¨ Firefox 63 å以åççæ¬ä¸ï¼ä¹æ¥åä½ä¸ºå ¶å«åçtype="application/json"ãtype="application/x-moz-keywordsearch"æå®å¨å°åæ ä¸è¾å ¥å ³é®è¯æç´¢æ¶ä½¿ç¨ç URLãå ¶ä» å Firefox çæ¯æã
对äºè¿äº URL ç±»åï¼é½å¯ä»¥ä½¿ç¨
{searchTerms}æ¿æ¢ç¨æ·å¨æç´¢æ æå°åæ ä¸è¾å ¥çå ³é®è¯ï¼OpenSearch 1.1 åæ°ä¸æè¿°äºå ¶ä»åæ¯æçæç´¢åæ°ãå¯¹äºæç´¢å»ºè®®ï¼å¯ä½¿ç¨
application/x-suggestions+jsonURL æ¨¡æ¿æ¥è·å JSON æ ¼å¼ç建议å表ã
èªå¨åç°æç´¢æä»¶
æä¾æç´¢æä»¶çç½ç«å¯ä»¥å®£åå®ä»¬ï¼ä»¥ä¾¿ Firefox ç¨æ·å¯ä»¥è½»æ¾å®è£ è¿äºæä»¶ã
è¦æ¯æèªå¨åç°ï¼è¯·å¨ä½ ç½é¡µç <head> ä¸ä¸ºæ¯ä¸ªæä»¶æ·»å ä¸ä¸ª <link> å
ç´ ï¼
<link
rel="search"
type="application/opensearchdescription+xml"
title="[searchTitle]"
href="[pluginURL]" />
å¦ä¸æç¤ºå°ä¿®æ¹å¨ [æ¹æ¬å·] å ç项ç®ï¼
- searchTitle
-
è¦æ§è¡çæç´¢çåç§°ï¼ä¾å¦âæç´¢ MDCâæâé èæç´¢âçãå ¶å¿ é¡»å¹é æä»¶æä»¶ç
ShortNameã - pluginURL
-
å° XML æç´¢æä»¶ç URLï¼ä»¥ä¾¿æµè§å¨å¯ä»¥ä¸è½½æä»¶ã
妿ç½ç«æ¥æå¤ç§æç´¢æä»¶ï¼ä¹å¯ä»¥è®©å®ä»¬å ¨é¨æ¯æèªå¨åç°ãä¾å¦ï¼
<link
rel="search"
type="application/opensearchdescription+xml"
title="æçç½ç«ï¼æ ¹æ®ä½è
"
href="http://example.com/mysiteauthor.xml" />
<link
rel="search"
type="application/opensearchdescription+xml"
title="æçç½ç«ï¼æ ¹æ®æ é¢"
href="http://example.com/mysitetitle.xml" />
è¿æ ·ï¼ç½ç«å°±è½æä¾ä»¥ä½è æä»¥æ é¢ï¼ä½ä¸ºæç´¢ç¬ç«å®ä½ç模åã
夿³¨ï¼å¨ Firefox ä¸ï¼æç´¢æ¡ä¸å¾æ çåå表ææä¸ä¸ªæä¾çæç´¢æä»¶ãï¼è§å¾çï¼ç»¿è²å å·ãï¼å æ¤ï¼å¦æç¨æ·çé¢ä¸æ²¡ææ¾ç¤ºæç´¢æ¡ï¼ä»ä»¬å°ä¸ä¼æ¶å°ä»»ä½æç¤ºãä¸è¬èè¨ï¼ä¸åæµè§å¨çè¡ä¸ºä¼ææä¸åã
OpenSearch æä»¶èªå¨æ´æ°
OpenSearch æä»¶å¯ä»¥èªå¨æ´æ°ãè¦æ¯æè¿ä¸ç¹æ§ï¼éè¦å¨ Url å
ç´ å
å« type="application/opensearchdescription+xml å rel="self"ãtemplate 屿§éè¦æ¯èªå¨æ´æ°ç OpenSearch ææ¡£ç URLã
ä¾å¦ï¼
<Url type="application/opensearchdescription+xml"
rel="self"
template="http://example.com/mysearchdescription.xml" />
夿³¨ï¼ç®åï¼addons.mozilla.orgï¼AMOï¼ä¸æ¯æ OpenSearch æä»¶çèªå¨æ´æ°ãå¦æè¦ææç´¢æä»¶æ¾å° AMOï¼è¯·å¨æäº¤åç§»é¤èªå¨æ´æ°ç¹æ§ã
æéæå·§
妿æç´¢æä»¶ XML åå¨é误ï¼å卿·»å å·²åç°çæä»¶æ¶å¯è½ä¼éå°é误ã妿éè¯¯æ¶æ¯æ²¡æå®é 帮å©ï¼ä»¥ä¸æå·§è½å¸®ä½ æ¾åºé®é¢ã
- æå¡å¨å¿
须使ç¨
Content-Type: application/opensearchdescription+xmlæä¾ OpenSearch æä»¶ã - ç¡®ä¿æç´¢æä»¶ XML çæ ¼å¼æ£ç¡®ãä½ å¯ä»¥ç´æ¥ç¨ Firefox å 载该æä»¶æ¥è¿è¡æ£æ¥ã
templateURL ç & 符å·å¿ é¡»å&è¿æ ·è½¬ä¹ï¼æ ç¾ä¹è¦ç¨æ£ææ æå¹é çéæ ç¾å ³éã xmlns屿§å¾éè¦ââå°äºå®å°±ä¼åºç°éè¯¯æ¶æ¯âFirefox æ æ³ä¸è½½æç´¢æä»¶âã- ä½ å¿
é¡»å
å«
text/htmlURLï¼æç´¢æä»¶åªå å« Atom æ RSS URL ç±»åï¼è½ç¶å®ææï¼ä½ Firefox 䏿¯æï¼é½å¯è½åçâæ æ³ä¸è½½æç´¢æä»¶âé误ã - è¿ç¨è·åç徿 ï¼faviconï¼ä¸è½å¤§äº 10KBï¼åè§ Firefox bug 361923ï¼ã
æ¤å¤ï¼æç´¢æä»¶æå¡è¿æä¾äºæ¥å¿è®°å½æºå¶ï¼è¿å¯¹æä»¶å¼åè
æ¥è¯´å¯è½å¾æç¨ãä½¿ç¨ about:config å° browser.search.log é¦é项设为 trueãç¶åï¼å¨æ·»å æç´¢æä»¶ä¹åï¼Firefox çæµè§å¨æ§å¶å°ï¼å·¥å
· ⤠æµè§å¨å·¥å
· ⤠æµè§å¨æ§å¶å°ï¼ä¸å°±ä¼åºç°æ¥å¿ä¿¡æ¯ã
åèèµæ
- OpenSearch ææ¡£
- Safari 8.0 çæ¬éç¥ï¼å¿«éç½ç«æç´¢
- Microsoft Edge å¼åæåï¼æç´¢ä¾åºååç°
- Chromium 项ç®ï¼æ Tab é®æç´¢
- imdb.com æä¸ä¸ªå¯ç¨ç
osd.xml - Ready2Searchââå建 OpenSearch æä»¶ãéè¿ Ready2Search è¿è¡èªå®ä¹æç´¢