å¨ç¼åç½é¡µååºç¨ç¨åºæ¶ï¼ä½ ææ³åçäºæ
ä¹ä¸æ¯ä»¥æç§æ¹å¼æçºµææ¡£ç»æãè¿é常æ¯éè¿ä½¿ç¨ææ¡£å¯¹è±¡æ¨¡åï¼DOMï¼æ¥å®ç°çãè¿æ¯ä¸å¥å¤§é使ç¨äº Document
对象ï¼ç¨äºæ§å¶ HTML åæ ·å¼ä¿¡æ¯ç APIãå¨è¿ç¯æç« ä¸ï¼æä»¬å°è¯¦ç»äºè§£å¦ä½ä½¿ç¨ DOMï¼ä»¥åå
¶ä»ä¸äºæè¶£ç APIï¼å®ä»¬å¯ä»¥ä»¥æè¶£çæ¹å¼æ¹åä½ çç¯å¢ã
Web æµè§å¨æ¯é叏夿çè½¯ä»¶ï¼æè®¸å¤æ´»å¨é¨ä»¶ï¼å ¶ä¸è®¸å¤é¨ä»¶ä¸è½ç± Web å¼åè ç¨ JavaScript æ§å¶ææçºµãä½ å¯è½è®¤ä¸ºè¿ç§éå¶æ¯ä»¶åäºï¼ä½æµè§å¨ä½åºè¿äºéå¶æ¯æåå çï¼ä¸»è¦æ¯å´ç»å®å ¨é®é¢ãæ³è±¡ä¸ä¸ï¼å¦æç½ç«å¯ä»¥è®¿é®ä½ åå¨çå¯ç æå ¶ä»ææä¿¡æ¯ï¼ä¸åä½ æ¬äººä¸æ ·ç»å½é£äºç½ç«ï¼ä¼åçä»ä¹ï¼
尽管æè¿äºéå¶ï¼Web API ä»ç¶ç»æä»¬æä¾äºå¤§éçåè½ï¼ä½¿æä»¬è½å¤ç¨ç½é¡µåå¾å¤äºæ ãå¨ä½ ç代ç ä¸ï¼æå 个éå¸¸ææ¾çé¨åä½ ä¼ç»å¸¸åèãèèä¸å¾ï¼å®ä»£è¡¨äºæµè§å¨ä¸ç´æ¥å䏿µè§ç½é¡µç主è¦é¨åï¼
Window
对象表示ã使ç¨è¿ä¸ªå¯¹è±¡ä¸çæ¹æ³ï¼ä½ å¯ä»¥åä¸äºäºæ
ï¼æ¯å¦è¿åçªå£ç大å°ï¼è§ Window.innerWidth
å Window.innerHeight
ï¼ï¼æä½å è½½å°çªå£çææ¡£ï¼å¨å®¢æ·ç«¯åå¨è¯¥ææ¡£çç¹å®æ°æ®ï¼ä¾å¦ä½¿ç¨æ¬å°æ°æ®åºæå
¶ä»å卿ºå¶ï¼ï¼ä¸ºå½åçªå£éå ä¸ä¸ªäºä»¶å¤çå¨çãNavigator
对象表示ãä½ å¯ä»¥ç¨è¿ä¸ªå¯¹è±¡æ¥æ£ç´¢ç¨æ·çé¦éè¯è¨ãç¨æ·ç½ç»æå头çåªä½æµçä¿¡æ¯ãDocument
对象表示ãä½ å¯ä»¥ä½¿ç¨è¿ä¸ªå¯¹è±¡æ¥è¿ååæä½ææææ¡£ç HTML å CSS çä¿¡æ¯ï¼ä¾å¦ï¼å¨ DOM ä¸è·å¾ä¸ä¸ªå
ç´ çå¼ç¨ï¼æ¹åå
¶ææ¬å
容ï¼å¯¹å
¶åºç¨æ°çæ ·å¼ï¼å建æ°çå
ç´ å¹¶å°å
¶ä½ä¸ºåå
ç´ æ·»å å°å½åå
ç´ ä¸ï¼çè³å®å
¨å é¤å®ã卿¬æä¸ï¼æä»¬ä¸»è¦å ³æ³¨æä½ææ¡£çæ¹æ³ï¼ä½æ¯ä¹ä¼ç¨å¾®å ³æ³¨ä¸ä¸å ¶ä»æç¨çé¨åã
ææ¡£å¯¹è±¡æ¨¡åç®åå¨ä½ çæ¯ä¸ä¸ªæµè§å¨æ ç¾ä¸å è½½çææ¡£æ¯ç±ä¸ä¸ªææ¡£å¯¹è±¡æ¨¡å表示çãè¿æ¯ä¸ä¸ªç±æµè§å¨å建çâæ ç¶ç»æâ表示æ³ï¼ä½¿ HTML ç»æè½å¤è¢«ç¼ç¨è¯è¨è½»æ¾è®¿é®ãä¾å¦ï¼æµè§å¨æ¬èº«å¨æ¸²æé¡µé¢æ¶ä½¿ç¨å®å°æ ·å¼åå ¶ä»ä¿¡æ¯åºç¨äºæ£ç¡®çå ç´ ï¼èå¼åè å¯ä»¥å¨é¡µé¢æ¸²æåç¨ JavaScript æ¥æä½ DOMã
æä»¬å¨ dom-example.htmlï¼ä¹å¯ä»¥ççå¨çº¿çä¾åï¼ä¸å建äºä¸ä¸ªç®åç示ä¾é¡µé¢ãè¯ç卿µè§å¨ä¸æå¼å®ãè¿æ¯ä¸ä¸ªé常ç®åç页é¢ï¼å
å«ä¸ä¸ª <section>
å
ç´ ï¼é颿ä¸å¼ å¾çï¼è¿æä¸ä¸ªå¸¦é¾æ¥ç段è½ã该 HTML æºä»£ç çèµ·æ¥åè¿æ ·ï¼
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>Simple DOM example</title>
</head>
<body>
<section>
<img
src="dinosaur.png"
alt="A red Tyrannosaurus Rex: A two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth." />
<p>
Here we will add a link to the
<a href="https://www.mozilla.org/">Mozilla homepage</a>
</p>
</section>
</body>
</html>
å ¶ DOM æ å¦ä¸æç¤ºï¼
夿³¨ï¼ è¿ä¸ª DOM æ ç¶å¾æ¯ç¨ Ian Hickson çå¨çº¿ DOM æ¥çå¨çæçã
æ ä¸çæ¯ä¸ªæ¡ç®é½è¢«ç§°ä¸ºèç¹ãä½ å¯ä»¥å¨ä¸å¾ä¸çå°ï¼ä¸äºèç¹ä»£è¡¨å
ç´ ï¼æ è¯ä¸º HTML
ãHEAD
ãMETA
çï¼ï¼å¦ä¸äºä»£è¡¨ææ¬ï¼æ è¯ä¸º #text
ï¼ãè¿æå
¶ä»ç±»åçèç¹ï¼ä½è¿äºæ¯ä½ ä¼éå°ç主è¦ç±»åã
èç¹ä¹éè¿å®ä»¬å¨æ ä¸ç¸å¯¹äºå ¶ä»èç¹çä½ç½®æ¥æä»£ï¼
HTML
èç¹ï¼å
¶ä»æ è®°è¯æ±ï¼å¦ SVG åå®å¶ XML å°æä¸åçæ ¹å
ç´ ï¼ãIMG
æ¯ SECTION
çåèç¹ãIMG
æ¯ SECTION
çåèç¹ï¼ä¹æ¯ä¸ä¸ªå代èç¹ãIMG
䏿¯ BODY
çåèç¹ï¼å 为å®å¨æ 䏿¯ BODY
ä½äºä¸¤çº§ï¼ä½å®æ¯ BODY
çå代ä¹ä¸ãBODY
æ¯ SECTION
çç¶èç¹ãIMG
å P
æ¯å
å¼ãå¨ä½¿ç¨ DOM ä¹åï¼çæè¿äºæ¯è¯æ¯å¾æç¨çï¼å ä¸ºä½ ä¼éå°çä¸äºä»£ç æ¯è¯é½ä¼ç¨å°å®ä»¬ãå¦æä½ å¦ä¹ è¿ CSSï¼ä½ å¯è½ä¹ä¼éå°å®ä»¬ï¼ä¾å¦ï¼ååéæ©å¨ãåéæ©å¨ï¼ã
卿ç»ä¹ ï¼åºæ¬ç DOM æä½è¦å¼å§å¦ä¹ DOM æä½ï¼æä»¬å åä¸ä¸ªå®é çä¾åã
å° dom-example.html 页é¢åä¸ä¹é å¥çå¾çæ·è´å°æ¬å°ã
å¨éåç </body>
æ ç¾ä¸é¢å å
¥ <script></script>
å
ç´ ã
è¦æä½ DOM å çå ç´ ï¼é¦å éè¦éæ©å®ï¼å¹¶å°å®çå¼ç¨åå¨å¨ä¸ä¸ªåéä¸ãå¨ script å ç´ ä¸ï¼æ·»å ä¸å代ç è¡ï¼
const link = document.querySelector("a");
ç°å¨æä»¬å·²ç»å°å
ç´ å¼ç¨åå¨å¨ä¸ä¸ªåéä¸ï¼æä»¬å¯ä»¥å¼å§ä½¿ç¨å¯ç¨ç屿§åæ¹æ³æ¥æä½å®ï¼å®ä»¬å®ä¹å¨ <a>
å
ç´ ç HTMLAnchorElement
æ¥å£ä¸ï¼å®ç»§æ¿äºæ´ä¸è¬çç¶æ¥å£ HTMLElement
ï¼ä»¥å Node
ââå®ä»£è¡¨ DOM 䏿æèç¹ï¼ãé¦å
ï¼è®©æä»¬éè¿æ´æ° Node.textContent
屿§ç弿¥æ¹å龿¥ä¸çææ¬ãå¨åä¸è¡ä¸é¢æ·»å 以ä¸å
容ï¼
link.textContent = "Mozilla Developer Network";
æä»¬ä¹è½ä¿®æ¹é¾æ¥æåç URLï¼ä½¿å¾å®è¢«ç¹å»æ¶ä¸ä¼èµ°åé误çä½ç½®ãå¨åºé¨å次å å ¥ä¸å代ç ï¼
link.href = "https://developer.mozilla.org";
请注æï¼å°±å JavaScript 䏿åç飿 ·ï¼æè®¸å¤æ¹æ³å¯ä»¥éæ©ä¸ä¸ªå
ç´ å¹¶å°å
¶å¼ç¨åå¨å¨ä¸ä¸ªåéä¸ãDocument.querySelector()
æ¯æ¨èçç°ä»£æ¹æ³ãå®å¾æ¹ä¾¿ï¼å 为å®å
è®¸ä½ ä½¿ç¨ CSS 鿩卿¥éæ©å
ç´ ãä¸é¢ç querySelector()
è°ç¨å°å¹é
ææ¡£ä¸åºç°ç第ä¸ä¸ª <a>
å
ç´ ãå¦æä½ æ³å¯¹å¤ä¸ªå
ç´ è¿è¡å¹é
åæä½ï¼ä½ å¯ä»¥ä½¿ç¨ Document.querySelectorAll()
ï¼å®å¯ä»¥å¹é
ææ¡£ä¸ä¸éæ©å¨ç¸å¹é
çæ¯ä¸ªå
ç´ ï¼å¹¶å°å®ä»¬çå¼ç¨åå¨å¨ä¸ä¸ªå«å NodeList
çç±»æ°ç»å¯¹è±¡ä¸ã
对äºè·åå ç´ å¼ç¨ï¼è¿æä¸äºæ´æ§çæ¹æ³ï¼å¦ï¼
Document.getElementById()
ï¼éæ©ä¸ä¸ª id
屿§å¼å·²ç¥çå
ç´ ï¼ä¾å¦ <p id="myId">My paragraph</p>
ãID ä½ä¸ºåæ°ä¼ éç»å½æ°ï¼å³ const elementRef = document.getElementById('myId')
ãDocument.getElementsByTagName()
ï¼è¿å页é¢ä¸å
å«çææå·²ç¥ç±»åå
ç´ çæ°ç»ãå¦ <p>
ã<a>
çãå
ç´ ç±»åä½ä¸ºåæ°ä¼ éç»å½æ°ï¼å³ const elementRefArray = document.getElementsByTagName('p')
ãè¿ä¸¤ç§æ¹æ³å¨æ§çæµè§å¨ä¸æ¯ç°ä»£æ¹æ³å¦ querySelector()
æ´å¥½ç¨ï¼ä½æ²¡æé£ä¹æ¹ä¾¿ãçä¸çï¼ççä½ è¿è½æ¾å°ä»ä¹å
¶ä»çæ¹æ³ï¼
以ä¸åªæ¯è®©ä½ ç¨å¾®å°è¯ä¸ä¸ä½ å¯ä»¥åçäºæ ï¼è®©æä»¬è¿ä¸æ¥ççæä»¬å¯ä»¥ææ ·æ¥å建æ°çå ç´ ã
åå°å½åçä¾åï¼æä»¬å
è·åå° <section>
å
ç´ çå¼ç¨ãå¨å·²æ script 䏿·»å ä¸å代ç ï¼å
¶ä»ä»£ç ä¹åæ ·å¤çï¼ï¼
const sect = document.querySelector("section");
ç°å¨ç¨ Document.createElement()
å建ä¸ä¸ªæ°ç段è½ï¼ç¨ä¸ä¹åç¸åçæ¹æ³èµäºç¸åçææ¬ï¼
const para = document.createElement("p");
para.textContent = "We hope you enjoyed the ride.";
ç°å¨å¯ä»¥ç¨ Node.appendChild()
æ¹æ³å¨åé¢è¿½å æ°ç段è½ï¼
æåï¼å¨å
é¨é¾æ¥ç段è½ä¸æ·»å ææ¬èç¹ï¼å®ç¾çç»æå¥åãé¦å
æä»¬è¦ä½¿ç¨ Document.createTextNode()
å建ä¸ä¸ªææ¬èç¹ï¼
const text = document.createTextNode(
" â the premier source for web development knowledge.",
);
ç°å¨è·åå é¨è¿æ¥ç段è½çå¼ç¨ï¼å¹¶æææ¬èç¹éå å°è¿ä¸ªèç¹ä¸ï¼
const linkPara = document.querySelector("p");
linkPara.appendChild(text);
è¿æ¯ç» DOM æ·»å èç¹è¦åç大é¨åå·¥ä½ââå¨æå»ºå¨æç颿¶ï¼ä½ å°å大é使ç¨è¿äºæ¹æ³ï¼æä»¬å¨åé¢å¯ä»¥çå°ä¸äºä¾åï¼ã
ç§»å¨åå é¤å ç´ä¹è®¸ææ¶åä½ æ³ç§»å¨æä» DOM ä¸å é¤èç¹ï¼è¿æ¯å®å ¨å¯è½çã
å¦æä½ æ³æå ·æå é¨é¾æ¥ç段è½ç§»å° section çåºé¨ï¼ç®åçåæ³æ¯ï¼
sect.appendChild(linkPara);
è¿æ ·å¯ä»¥ææ®µè½ä¸ç§»å° section çåºé¨ãä½ å¯è½è®¤ä¸ºå®ä¼äº§ç第äºä¸ªå¯æ¬ï¼ä½äºå®å¹¶é妿¤ââlinkPara
æ¯å¯¹è¯¥æ®µè½å¯ä¸å¯æ¬çå¼ç¨ãå¦æä½ æ³å¤å¶å¹¶æ·»å å®ï¼ä½ éè¦ä½¿ç¨ Node.cloneNode()
æ¥ä»£æ¿ã
å é¤èç¹ä¹é常çç®åï¼è³å°ï¼ä½ æ¥æè¦å é¤çèç¹åå
¶ç¶èç¹çå¼ç¨ãå¨å½åæ
åµä¸ï¼æä»¬åªè¦ä½¿ç¨ Node.removeChild()
å³å¯ï¼å¦ä¸ï¼
sect.removeChild(linkPara);
è¦å é¤ä¸ä¸ªä»
åºäºèªèº«å¼ç¨çèç¹å¯è½ç¨å¾®æç¹å¤æï¼è¿ä¹æ¯å¾å¸¸è§çãä½ å¯ä»¥ä½¿ç¨ Element.remove()
ï¼
æ¤æ¹æ³å¨è¾æ§çæµè§å¨ä¸ä¸åæ¯æï¼å®ä»¬æ²¡ææ¹æ³åè¯ä¸ä¸ªèç¹å é¤èªå·±ï¼æä»¥ä½ å¿ é¡»è¿æ ·åï¼
linkPara.parentNode.removeChild(linkPara);
æä¸è¿°ä»£ç è¡å å°ä½ ç代ç ä¸å»ã
æä½æ ·å¼éè¿ JavaScript 以ä¸åçæ¹å¼æ¥æä½ CSS æ ·å¼æ¯å¯è½çã
é¦å
ï¼ä½ å¯ä»¥ä½¿ç¨ Document.stylesheets
æ¥è·å¾ä¸ä¸ªéå å¨ææ¡£ä¸çæææ ·å¼è¡¨çå表ï¼å®è¿åä¸ä¸ªå
å« CSSStyleSheet
对象çç±»æ°ç»ãç¶åä½ å°±å¯ä»¥æ ¹æ®éè¦æ·»å /å 餿 ·å¼äºãç¶èï¼æä»¬ä¸æç®å¯¹è¿äºåè½è¿è¡æ©å±ï¼å 为å®ä»¬æ¯ä¸ç§æç¹è¿æ¶çãé¾ä»¥æä½æ ·å¼çæ¹å¼ãè¿ææ´å¤æ´ç®åçæ¹æ³ã
第ä¸ç§æ¹æ³æ¯ç´æ¥å°å
èæ ·å¼æ·»å å°ä½ æ³å¨ææ ·å¼çå
ç´ ä¸ãè¿æ¯éè¿ HTMLElement.style
屿§å®ç°çï¼å®å
å«äºææ¡£ä¸æ¯ä¸ªå
ç´ çå
èæ ·å¼ä¿¡æ¯ãä½ å¯ä»¥è®¾ç½®è¿ä¸ªå¯¹è±¡ç屿§æ¥ç´æ¥æ´æ°å
ç´ æ ·å¼ã
ä½ä¸ºç¤ºä¾ï¼æä¸é¢ç代ç è¡å 尿们çä¾åä¸ï¼
para.style.color = "white";
para.style.backgroundColor = "black";
para.style.padding = "10px";
para.style.width = "250px";
para.style.textAlign = "center";
éæ°è½½å ¥é¡µé¢ï¼ä½ å°çå°æ ·å¼å·²ç»åºç¨å°æ®µè½ä¸ã妿卿µè§å¨ç Page Inspector/DOM inspector 䏿¥ç段è½ï¼ä½ ä¼çå°è¿äºä»£ç çç¡®ä¸ºææ¡£æ·»å äºå èæ ·å¼ï¼
<p
style="color: white; background-color: black; padding: 10px; width: 250px; text-align: center;">
We hope you enjoyed the ride.
</p>
夿³¨ï¼ 请注æï¼CSS æ ·å¼ç JavaScript 屿§çæ¬æ¯ç¨å°é©¼å³°å½åæ³ä¹¦åçï¼è CSS çæ¬éç¨è¿å符ï¼ç¤ä¸²å½åæ³ï¼ï¼ä¾å¦ï¼backgroundColor
对 background-color
ï¼ãç¡®ä¿ä½ ä¸è¦æè¿äºæ··ä¸ºä¸è°ï¼å¦åå°æ æ³å·¥ä½ã
è¿æä¸ç§å¨ä½ çææ¡£ä¸å¨ææä½æ ·å¼çå¸¸è§æ¹æ³ï¼æä»¬ç°å¨å°±æ¥ççã
å é¤ä¹åæ·»å å° JavaScript ä¸çäºè¡ä»£ç ã
å¨ HTML ç <head>
䏿·»å ä¸å代ç :
<style>
.highlight {
color: white;
background-color: black;
padding: 10px;
width: 250px;
text-align: center;
}
</style>
ç°å¨æä»¬æ¹ä¸ºä½¿ç¨ HTML æä½çå¸¸ç¨æ¹æ³ââElement.setAttribute()
ââ宿¥åä¸¤ä¸ªåæ°ï¼æ³å¨å
ç´ ä¸è®¾ç½®ç屿§ãè¦ä¸ºå®è®¾ç½®çå¼ãå¨è¿ç§æ
åµä¸ï¼æä»¬å¨æ®µè½ä¸è®¾ç½®ç±»å为 highlightï¼
para.setAttribute("class", "highlight");
å·æ°ä½ ç页é¢ï¼ä¸ä¼çå°ä»»ä½æ¹åââCSS ä»ç¶åºç¨äºè¯¥æ®µè½ï¼ä½è¿æ¬¡æ¯éè¿ç»å®ä¸ä¸ªç±»ï¼ç±æä»¬ç CSS è§åéæ©ï¼è䏿¯ä½ä¸ºå è CSS æ ·å¼ã
ä¸¤ç§æ¹å¼åæä¼ç¼ºç¹ï¼éæ©åªç§åå³äºä½ èªå·±ã第ä¸ç§æ¹æ³éè¦è¾å°ç设置ï¼éåäºç®åç使ç¨ï¼è第äºç§æ¹æ³æ´çº¯ç²¹ï¼æ··å CSSãJavaScript åå èæ ·å¼é叏䏿¯ä¸ç§å¥½çå®è·µï¼èè¯¥æ¹æ³ä¸ä¼äº§çè¿äºï¼ãå½ä½ å¼å§æå»ºæ´å¤§åæ´å¤çåºç¨ç¨åºæ¶ï¼ä½ å¯è½ä¼æ´å¤å°å¼å§ä½¿ç¨ç¬¬äºç§æ¹æ³ï¼ä½è¿ççåå³äºä½ ã
å¨è¿ä¸ç¹ä¸ï¼æä»¬è¿æ²¡æå任使ç¨çäºï¼ä½¿ç¨ JavaScript æ¥å建éæå å®¹æ¯æ²¡ææä¹çï¼ä½ è¿ä¸å¦ç´æ¥æå®åè¿ä½ ç HTMLï¼èä¸ä½¿ç¨ JavaScriptã宿¯ HTML æ´å¤æï¼èä¸ç¨ JavaScript åå»ºä½ çå å®¹ä¹æå ¶ä»é带çé®é¢ï¼æ¯å¦ä¸è½è¢«æç´¢å¼æé 读ï¼ã
卿¥ä¸æ¥çå è䏿们å°çç DOM API ä¸äºæ´å®é çç¨éã
夿³¨ï¼ ä½ å¯ä»¥å¨ GitHub 䏿¾å°æä»¬ç dom-example.html çå®æçæ¼ç¤ºï¼ä¹å¯ä»¥ççå®çå¨çº¿è¿è¡çæ¬ï¼ã
卿ç»ä¹ ï¼ä¸ä¸ªå¨æçè´ç©åå¨è¿ä¸ªææä¸ï¼æä»¬æ³åä¸ä¸ªç®åçè´ç©æ¸ åä¾åï¼å è®¸ä½ ä½¿ç¨è¡¨åè¾å ¥åæé®å¨æå°å°ç©åæ·»å å°æ¸ åä¸ãå½ä½ å¨è¾å ¥ä¸æ·»å ä¸ä¸ªé¡¹ç®å¹¶æä¸æé®æ¶ï¼
宿åçæ¼ç¤ºç¨åºçèµ·æ¥æç¹åè¿æ ·çï¼
è¦å®æå®éªï¼è¦æç §ä¸é¢çæ¥éª¤ï¼ç¡®ä¿è´ç©åçè¡ä¸ºå¦ä¸æè¿°ã
<script>
å
ç´ ãè¦æ·»å çææç¨åºé½å¨ script éé¢ã<ul>
ï¼ã<input>
å <button>
å
ç´ çå¼ç¨ã''
以æ¸
空å®ã<li>
ï¼ã<span>
å <button>
ï¼å¹¶æå®ä»¬åå
¥åéä¹ä¸ã<li>...</li>
ï¼ãfocus()
æ¹æ³èç¦è¾å
¥æ¡åå¤è¾å
¥ä¸ä¸ä¸ªè´ç©é¡¹ã夿³¨ï¼ å¦æä½ å¡ä½äºï¼è¯·æ¥ç宿çè´ç©æ¸ åï¼æ¥çå ¶å¨çº¿çæ¬ï¼ã
æ»ç»æä»¬å·²ç»ç»æäºå¯¹ææ¡£å DOM æä½çç ç©¶ãå¨è¿ä¸ç¹ä¸ï¼ä½ åºè¯¥æç½ Web æµè§å¨å¨æ§å¶ææ¡£åç¨æ·ç½ç»ä½éªçå ¶ä»æ¹é¢æåªäºéè¦é¨åãæéè¦çæ¯ï¼ä½ åºè¯¥æç½ä»ä¹æ¯ææ¡£å¯¹è±¡æ¨¡åï¼ä»¥åå¦ä½æä½å®æ¥å建æç¨çåè½ã
åè§ä½ è¿å¯ä»¥ä½¿ç¨æ´å¤çç¹æ§æ¥æä½ææ¡£ï¼æ¥çè¿äºåèï¼ççä½ è½åç°äºä»ä¹ï¼
ï¼è¯·åé æä»¬ç Web API ç´¢å¼ï¼äºè§£ MDN ä¸è®°å½ç Web API ç宿´å表ï¼ï¼
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4