• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ajax的な手法で取得したHTMLの表示)

Ajax的な手法で取得したHTMLの表示

このQ&Aのポイント
  • XMLHttpRequestで非同期に取得したHTMLをポップアップのように表示させる方法を教えてください。
  • 取得したHTMLは認識されないため、表示させる方法を教えてください。
  • 非同期で取得したHTMLをJavascriptから操作する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

> できればHTMLは表示するだけでよい形でもらい、それを操作して表示済みのHTMLに組み込むよう操作したいのです。 > もし方法をご存知でしたら教えていただければと嬉しいです。 XMLHttpRequestの仕様とJavaScriptのDOMの仕様を確認してみましたが、実現するのは難しいようです。 XMLHttpRequestのレスポンスがXMLの場合、responseXMLプロパティを使用してDOMとして操作できますが、これをそのままHTMLのある要素にappendChildすることはできないようです(自環境で試してみました)。 XMLHttpRequestでは文字列のようなデータのみを取得して、それをJavaScript内で加工するしかないようですね。 教科書では、 ---------- pop = createElement('div'); pop.id = 'popup'; caption = createTextNode(xhr.responseText); pop.appendChild(caption); ---------- とdivタグも動的に作っているようですが、HTML内にあらかじめ<div id="popup"/>を書いておき、 ---------- caption = createTextNode(xhr.responseText); getElementById('popup').appendChild(caption); ---------- とする方法もありますね。 回答になっていなくてすみません。 jQueryのようなAjaxライブラリを使用すればHTMLのロードができたと思うのですが・・・。

guttten
質問者

お礼

わざわざ調べていただきましてありがとうございます! その上試してまでいただけるとは、非常に良い方なんだろうなと想像しております。 XMLので受け取るのはまだちょっと敷居が高く感じてしまうので、とりあえず教科書通りにやってみようかと思います。 ライブラリも近々手を出してみる予定です!とてもすっきりしました。 感謝です。

その他の回答 (2)

回答No.3
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

> pop = document.getElementById('popup'); > document.body.appendChild(pop); 上記のように記述しても、XMLHttpRequestでテキストやHTMLを取得しても呼び出し元のHTMLの要素には追加されていないので、document.getElementById(...)を使用しても取得できません。 XMLHttpRequestで非同期に取得したテキストやHTMLは、XMLHttpRequestオブジェクトのresponseText、またはresponseXMLで参照できます。 つまり、変数xhrをXMLHttpRequestオブジェクトだとすると、 xhr.responseText; xhr.reponseXML; でそれぞれ参照できます。

guttten
質問者

お礼

pop = xhr.responseText; とし、 alert(pop); としたら確かにテキストを取得することはできました。 ここからさらに、取得したテキストをHTMLとして使用し、 document.getElementById('popup'); でいろいろ操作するようにする方法はありますでしょうか? 教科書には THIS IS AJAX TEST!! という文字列だけを非同期で取得し、 pop = createElement('div'); pop.id = 'popup'; caption = createTextNode(xhr.responseText); pop.appendChild(caption); というようなやり方で動的にdivタグ、ID等をくみ上げていくのですが、 できればHTMLは表示するだけでよい形でもらい、それを操作して表示済みのHTMLに組み込むよう操作したいのです。 もし方法をご存知でしたら教えていただければと嬉しいです。

関連するQ&A