XHR2改めXHRではresponseType = 'document'でHTML文書を返してくれる。で、Fx11, Cr18から使えるようになっている。
var xhr = new XMLHttpRequest(); xhr.onload = function () { console.log(this.response instanceof HTMLDocument); } xhr.open('GET', 'foo.html'); xhr.responseType = 'document'; xhr.send();
こんなんでいいのかな…。ええと、responseをinspectしてみてください。
responseXMLもHTMLを返すから奇々怪々な感じではあるけれど、そんなこと言うとオブジェクトの名前からつっこまないといけないので、ぐっとこらえて。
というわけでMDNでそれについて書いてる記事を訳しました。
原文では最後にresponseTextで読んだものを正規表現で処理するってセクションがあったんだけど案の定削除された。
responseType='json'
あ、そういえば仕様にはresponseType = 'json'でJSON.parseしたオブジェクトが返ってくる機能もはいってる。こっちは12月に仕様に追加されたばっかりだけど、すでにFx10で対応してるらしい。(もともとFx9で'moz-json'としてサポートされてて、10で接頭辞が外れたらしい)。
OperaはPresto 2.10.256で実装済らしいけど、一番新しいOpera Nextが255だったので確認できず。2.10.269なスナップショットが出た!うごいた!
そしてIE10はどうなんだろう。BlobはサポートされてるけれどArrayBufferやらはないから、厳しいかなあ。
む、'ms-stream'なんてあるんだ…。