Baseline Widely available *
W3C ã® XMLHttpRequest
仿§æ¸ã§ã¯ããã¨ã㨠XML ã®è§£éãã対å¿ãã¦ããªãã£ã XMLHttpRequest
ã« HTML ã®è§£éã追å ãã¦ãã¾ãããã®æ©è½ã«ãã£ã¦ãã¦ã§ãã¢ããªã¯ XMLHttpRequest
ã使ã£ã¦ HTML ãè§£éæ¸ã® DOM ã¨ãã¦åå¾ãããã¨ãã§ãã¾ãã
ä¸è¬ç㪠XMLHttpRequest
ã®ä½¿ãæ¹ã«ã¤ãã¦ã®æ¦è¦ã¯ã XMLHttpRequest ã®å©ç¨ããèªã¿ãã ããã
åæç㪠XMLHttpRequest
ã®å©ç¨ãé¿ããããã«ã HTML 対å¿ã¯åæã¢ã¼ãã§ã¯å©ç¨ã§ãã¾ãããã¾ãã HTML 対å¿ã¯ responseType
ããããã£ã "document"
ã«è¨å®ããã¦ããæã«ã®ã¿æå¹ã§ãããã®å¶éã«ãã£ã¦ãå¤ãã³ã¼ãã XMLHttpRequest
ã使ã£ã¦ responseText
ã text/html
ã§ãããªã½ã¼ã¹ãæ¢å®ã®ã¢ã¼ãã§åãåãã¨ãã«ãç¡ç¨ã« HTML ãè§£éããæéãæµªè²»ãããã¨ãé²ãã¾ããã¾ãããã®å¶éã«ãã£ã¦ HTTP ã®ã¨ã©ã¼ãã¼ã¸ (ãµã¤ã㯠text/html
ã®å¿çæ¬æãæã¤) ã®éã« responseXML
ã null
ã¨æ³å®ããå¤ãã³ã¼ãã§åé¡ãçºçãããã¨ãé²ããã¨ãã§ãã¾ãã
XMLHttpRequest
ã使ã£ã¦ HTML ãªã½ã¼ã¹ã DOM ã¨ãã¦åå¾ãããã¨ã¯ã XMLHttpRequest
ã使ã£ã¦ XML ãªã½ã¼ã¹ã DOM ã¨ãã¦åå¾ããã®ã¨ä¼¼ã¦ãã¾ãããåæã¢ã¼ãã使ç¨ãããã¨ã¯ã§ããã XMLHttpRequest
ãªãã¸ã§ã¯ãã® open()
ãå¼ã³åºããå¾ã send()
ãå¼ã³åºãåã«ã responseType
ããããã£ã«æåå "document"
代å
¥ãã¦ãæç¤ºçã«ææ¸ãè¦æ±ããå¿
è¦ãããã¨ããç¹ãç°ãªãã¾ãã
const xhr = new XMLHttpRequest();
xhr.onload = () => {
console.log(xhr.responseXML.title);
};
xhr.open("GET", "file.html");
xhr.responseType = "document";
xhr.send();
æ©è½ã®æ¤åº æ¹æ³ 1
ãã®æ¹æ³ã¯ãå¼·å¶çã«éåæãã§ããæ§è³ªãå©ç¨ãããã®ã§ãã XMLHttpRequest
ãªãã¸ã§ã¯ããåæã¢ã¼ãã§éããå¾ã responseType
è¨å®ãããã¨ããã¨ãæ©è½ãå®è£
ãã¦ãããã©ã¦ã¶ã¼ã§ã¯ã¨ã©ã¼ãæãã¾ããããã以å¤ã®ãã©ã¦ã¶ã¼ã§ã¯ãã®ã¾ã¾åä½ãã¾ãã
function HTMLinXHR() {
if (!window.XMLHttpRequest) {
return false;
}
const req = new window.XMLHttpRequest();
req.open("GET", window.location.href, false);
try {
req.responseType = "document";
} catch (e) {
return true;
}
return false;
}
ãã®æ¹æ³ã¯åæçã§ãããä»ã®è³ç£ã«é ¼ãã¾ãããããã®æ©è½ããããã¨ã示ãã ãã§å®éã®æ©è½ããã§ãã¯ãããã®ã§ã¯ãªãã®ã§ãæ¬¡ã®æ¹æ³ 2 ã®æ¹ãããä¿¡é ¼ã§ããããããã¾ããã
æ¹æ³ 2ãã©ã¦ã¶ã¼ã XMLHttpRequest
ã§ HTML ã®è§£éå¦çã«å¯¾å¿ãã¦ãããã©ããã確å®ã«æ¤åºããã«ã¯ãäºã¤ã®èª²é¡ãããã¾ããã¾ãã HTML 対å¿ãéåæã¢ã¼ãã§ããæå¹ã§ãªããã¨ãããæ¤åºçµæã¯éåæã§åãåããããã¨ã«ãªãã¾ãã第äºã«ã data:
URL ã使ç¨ããã¨åæã« data:
URL ã®å¯¾å¿ã«ãä¾åãããã¨ã«ãªããããå®éã« HTTP ãéãã¦ææ¸ãåå¾ããªããã°ãªããªããã¨ã§ãã
ã¤ã¾ãã HTML 対å¿ãæ¤åºããã«ã¯ããµã¼ãã¼ä¸ã«ãã¹ãç¨ã® HTML ææ¸ãå¿ è¦ã«ãªãã¾ãããã®ãã¹ããã¡ã¤ã«ã¯å°ãããæ´å½¢å¼ã® XML ã§ã¯ãªããã®ã§ãã
ãã®ãã¡ã¤ã«ã detect.html
ã¨ããååã ã£ãå ´åã HTML 対å¿ãæ¤åºãã颿°ã¯æ¬¡ã®ããã«æ¸ããã¨ãã§ãã¾ãã
function detectHtmlInXhr(callback) {
if (!window.XMLHttpRequest) {
setTimeout(function () {
callback(false);
}, 0);
return;
}
let done = false;
const xhr = new window.XMLHttpRequest();
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && !done) {
done = true;
callback(
!!(
xhr.responseXML &&
xhr.responseXML.title &&
xhr.responseXML.title === "&&<"
),
);
}
};
xhr.onabort = xhr.onerror = () => {
if (!done) {
done = true;
callback(false);
}
};
try {
xhr.open("GET", "detect.html");
xhr.responseType = "document";
xhr.send();
} catch (e) {
setTimeout(function () {
if (!done) {
done = true;
callback(false);
}
}, 0);
}
}
弿°ã® callback
ã¯éåæã«å¼ã³åºããã颿°ã§ããã HTML 対å¿ãããå ´åã«ã¯å¯ä¸ã®å¼æ°ã true
ã«ãªãã HTML 対å¿ããªãå ´åã¯å¯ä¸ã®å¼æ°ã false
ã«ãªãã¾ãã
HTTP ã® Content-Type
ãããã¼ã§æåã¨ã³ã³ã¼ãã£ã³ã°ã宣è¨ããã¦ããå ´åã¯ããã®ã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ããã¾ããããã§ãªãå ´åããããã¤ããªã¼ãã¼ãã¼ã¯ãããå ´åã¯ããã®ãã¤ããªã¼ãã¼ãã¼ã¯ã示ãã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ãã¾ããããã§ãªãå ´åããããã¡ã¤ã«ã®å
é 1024 ãã¤ã以å
ã«ã¨ã³ã³ã¼ãã£ã³ã°ã宣è¨ãã <meta>
è¦ç´ ãããå ´åã¯ããã®ã¨ã³ã³ã¼ãã£ã³ã°ã使ç¨ããã¾ããããããªãå ´åããã¡ã¤ã«ã¯ UTF-8 ã¨ãã¦ãã³ã¼ãããã¾ãã
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