気になるポイントの整理
1つ目.XMLHttpRequestで取得した内容に""が入っていてもfunc1は使えない.関数の動的追加をJavascript自身は行えない(と仮定)から.
これに対してはやはりあらかじめ全ての関数を最初のページアクセスの際に返して置くしかない.このような手法をとると初回アクセスが遅くなる可能性があるので""はBodyの一番後ろに置いて,最初のほうで"Waiting..."とかのHTMLを出しておいて,onloadで本当に表示したいコンテンツを再度XMLHttpRequestで取りに言って差し替えるというパターンを取ることで対応.
2つ目がやっかいかも.XMLHttpRequestで取得した内容に"<input id="hoge" type=text />"などが入っていた場合,そこにユーザが入力した内容をdocument.getElementByIdあるいは他の方法で取れるかどうか.innerHTMLに突っ込んだ昨日の方法だとid=hogeが取れなかった.もしかしてDOM関数を使って突っ込むようにすれば取れるのかな?それともouterHTMLで解決?
起きたら既に13時だった.昨日寝たの4時・・・.既に日本にいた時と同じような生活になりつつある.やばーい.
と書きましたが,Javascriptで追加したinput要素の方は普通に取れるようです.昨日は遅かったから頭がぼけてたのかな〜.
検証で使ったソース
<html> <head> <script> function func1() { var fuga = document.getElementById("fuga"); fuga.innerHTML = "<input type='text' id='id1' name='input1'/>"; //fuga.innerHTML = "<form name='form1' action=''><input type='text' id='id1' name='input1'/></form>"; } function func2() { var fuga = document.getElementById("fuga"); fuga.outerHTML = "<form name='form1' action=''><input type='text' id='id1' name='input1'/></form>"; } function func3() { var target = document.getElementById('id1'); alert(target + ":" + target.value); } </script> </head> <body> <p> <button type="button" onclick="func1();">func1</button> <button type="button" onclick="func2();">func2</button> <button type="button" onclick="func3();">func3</button> </p> <p> <div id="fuga">default message</div> </p> </body> </html>