回答編集履歴
2
内容を修正
test
CHANGED
@@ -82,11 +82,7 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
-
正直こういったDOM操作を自前で用意するとなると、ちょっとめんどくさい上にメンテナンスしにくいです。
|
86
|
-
|
87
|
-
可能であれば、ReactやVue、Svelteといったビューライブラリの採用を検討されるとよいかと存じます。
|
88
|
-
|
89
|
-
|
85
|
+
クライアントサイドでスクリプトを動的に読み込む方法を書いておいて何なんですが、他の方も回答されているように今回のケースではサーバーサイドでHTMLを動的に生成する方法がよいのではないかと思います。
|
90
86
|
|
91
87
|
|
92
88
|
|
1
内容を修正・追記
test
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
【追記】
|
2
|
+
|
3
|
+
`<noscript>`について、「`<noscript>`はJavaScriptが無効な環境で表示されるので、`img`を追加するのは無意味ではないか」とご指摘をいただきました。
|
4
|
+
|
5
|
+
そのとおりです。コードと説明を修正しました。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
|
12
|
+
|
1
13
|
`<script src="'https://example.com/1/?code='+ hoge" id="aaa"></script>`はHTMLであり、`"'https://example.com/1/?code='+ hoge"`もまたHTMLの一部分です。JavaScriptとして実行されるわけではありません。
|
2
14
|
|
3
15
|
|
@@ -14,13 +26,11 @@
|
|
14
26
|
|
15
27
|
|
16
28
|
|
17
|
-
|
29
|
+
`img`タグについては`<noscript></noscript>`内の要素をJavaScriptでは操作できないので(JavaScriptが無効の環境向けですからね……)、サーバーサイドでHTMLを生成するなどの方法をとりましょう。
|
18
30
|
|
19
31
|
|
20
32
|
|
21
33
|
```html
|
22
|
-
|
23
|
-
<noscript></noscript>
|
24
34
|
|
25
35
|
<script>
|
26
36
|
|
@@ -44,26 +54,6 @@
|
|
44
54
|
|
45
55
|
|
46
56
|
|
47
|
-
// img要素を作る関数
|
48
|
-
|
49
|
-
function createImg(src) {
|
50
|
-
|
51
|
-
var script = document.createElement("img"); // script要素を作る
|
52
|
-
|
53
|
-
script.width = "1";
|
54
|
-
|
55
|
-
script.height = "1";
|
56
|
-
|
57
|
-
script.alt = "";
|
58
|
-
|
59
|
-
script.src = src;
|
60
|
-
|
61
|
-
return script;
|
62
|
-
|
63
|
-
}
|
64
|
-
|
65
|
-
|
66
|
-
|
67
57
|
// ドキュメントが完全に読み込まれてから
|
68
58
|
|
69
59
|
document.addEventListener('load', () => {
|
@@ -77,18 +67,6 @@
|
|
77
67
|
var s2 = createScript('https://example.com/2/?code=' + hoge, "aaa");
|
78
68
|
|
79
69
|
document.body.appendChild(s2);
|
80
|
-
|
81
|
-
// img要素を作ってnoscriptに追加
|
82
|
-
|
83
|
-
var noscript = document.querySelector("noscript");
|
84
|
-
|
85
|
-
if (noscript) {
|
86
|
-
|
87
|
-
var img = createImg('https://example.com/img/aaa/?code='+ hoge);
|
88
|
-
|
89
|
-
noscript.appendChild(img);
|
90
|
-
|
91
|
-
}
|
92
70
|
|
93
71
|
});
|
94
72
|
|