回答編集履歴
5
間違いを修正
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
txt += "</tbody></table>ここまで</p>";
|
24
24
|
|
25
|
-
document.getElementById("mainBody").innerH
|
25
|
+
document.getElementById("mainBody").innerHTML = txt;
|
26
26
|
|
27
27
|
```
|
28
28
|
|
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
ele.id = "addScript001";
|
38
38
|
|
39
|
-
ele.innerT
|
39
|
+
ele.innerHTML = 読み込んだtext;
|
40
40
|
|
41
41
|
if (document.getElementById(ele.id)) {
|
42
42
|
|
@@ -48,10 +48,8 @@
|
|
48
48
|
|
49
49
|
```ってやります。
|
50
50
|
|
51
|
-
「読み込んだtext」は
|
51
|
+
「読み込んだtext」は質問にあるようにXMLHttpRequestでやればいいですね。
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
|
55
|
+
もう少し整理して「何を」「どうして」外部に持ちたいのか、考えた方がよさそうです。決して省力化にはなりそうもないんですが・・・
|
56
|
-
|
57
|
-
あー、あほらしいこと考えちゃった・・・
|
4
間違い
test
CHANGED
@@ -1,18 +1,28 @@
|
|
1
|
+
すみません、嘘を書いておりました。
|
2
|
+
|
3
|
+
mainBodyの中にscriptブロックを置いても、動作はbodyに対してなされてしまいます。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
|
1
9
|
読み込むtextをjavascriptにします。
|
2
10
|
|
3
11
|
```Javascript
|
4
12
|
|
5
|
-
document.write("<p>メンバーの一覧<br>");
|
6
|
-
|
7
|
-
|
13
|
+
var txt = "<p>メンバーの一覧<br><table><tbody>";
|
8
14
|
|
9
15
|
for( i=1; i < memData.length-1; i++ ){
|
10
16
|
|
11
|
-
dumpMem( i );
|
17
|
+
txt += dumpMem( i );
|
18
|
+
|
19
|
+
// dumpMemは出力するのではなくhtmlをreturnするようにする
|
12
20
|
|
13
21
|
}
|
14
22
|
|
15
|
-
|
23
|
+
txt += "</tbody></table>ここまで</p>";
|
24
|
+
|
25
|
+
document.getElementById("mainBody").innerHtml = txt;
|
16
26
|
|
17
27
|
```
|
18
28
|
|
@@ -24,14 +34,24 @@
|
|
24
34
|
|
25
35
|
var ele = document.createElement('script');
|
26
36
|
|
37
|
+
ele.id = "addScript001";
|
38
|
+
|
27
39
|
ele.innerText = 読み込んだtext;
|
28
40
|
|
29
|
-
document.getElementById(
|
41
|
+
if (document.getElementById(ele.id)) {
|
30
42
|
|
31
|
-
|
43
|
+
document.getElementById(ele.id).remove();
|
32
44
|
|
45
|
+
}
|
46
|
+
|
47
|
+
document.body.appendChild(ele);
|
48
|
+
|
49
|
+
```ってやります。
|
50
|
+
|
33
|
-
|
51
|
+
「読み込んだtext」はHTMLに埋め込むにしろ、ajaxで返すにしろ、サーバー側でそのtextを生成させる仕組みが必要です。
|
34
52
|
|
35
53
|
|
36
54
|
|
37
|
-
|
55
|
+
っていうか、ここまでやるなら、サーバー側でテキストを作って、直接mainBodyにinnerHtmlに入れたらいいですよ。
|
56
|
+
|
57
|
+
あー、あほらしいこと考えちゃった・・・
|
3
追記
test
CHANGED
@@ -31,3 +31,7 @@
|
|
31
31
|
```ってやると実現できそう。
|
32
32
|
|
33
33
|
ぜったいhtmlじゃなきゃヤダ、っていう場合は読み込んだtextからdomツリーを作るスクリプトを書いて、頑張るしかなさそうですね。
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
注意すべき点としては、appendChildなので、何回でも実行できてしまうので、どんどん増えていってしまいます。内容が入っている場合は実行できないようにする必要がありそうです。
|
2
変更
test
CHANGED
@@ -1,11 +1,33 @@
|
|
1
|
+
読み込むtextをjavascriptにします。
|
2
|
+
|
3
|
+
```Javascript
|
4
|
+
|
5
|
+
document.write("<p>メンバーの一覧<br>");
|
6
|
+
|
7
|
+
document.write("<table><tbody>");
|
8
|
+
|
1
|
-
|
9
|
+
for( i=1; i < memData.length-1; i++ ){
|
10
|
+
|
11
|
+
dumpMem( i );
|
12
|
+
|
13
|
+
}
|
14
|
+
|
15
|
+
document.write("</tbody></table>ここまで</p>");
|
16
|
+
|
17
|
+
```
|
2
18
|
|
3
19
|
|
4
20
|
|
5
|
-
|
21
|
+
読み込みもとでは、
|
6
22
|
|
7
|
-
|
23
|
+
```Javascript
|
8
24
|
|
9
|
-
|
25
|
+
var ele = document.createElement('script');
|
10
26
|
|
27
|
+
ele.innerText = 読み込んだtext;
|
28
|
+
|
29
|
+
document.getElementById("mainBody").appendChild(ele);
|
30
|
+
|
31
|
+
```ってやると実現できそう。
|
32
|
+
|
11
|
-
読み込んだtxt
|
33
|
+
ぜったいhtmlじゃなきゃヤダ、っていう場合は読み込んだtextからdomツリーを作るスクリプトを書いて、頑張るしかなさそうですね。
|
1
質問をよく読んで回答
test
CHANGED
@@ -1 +1,11 @@
|
|
1
1
|
`eval`を使えばいいかもしれませんが、文法がめちゃくちゃ・・・
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
追記
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
まあ、呼び出し元がアレなのはともかく。
|
10
|
+
|
11
|
+
読み込んだtxtがhtmlを含むものなので、`eval`は使えませんね。失礼しました。
|