回答編集履歴

1

回答を書き直し

2020/12/05 01:07

投稿

maisumakun
maisumakun

スコア145977

test CHANGED
@@ -1,9 +1,29 @@
1
- く位置問題ででしょうか
1
+ HTML中に`&#***;`といたとき動作、**場所によって違ます**
2
2
 
3
3
 
4
4
 
5
- `c`が`<textarea id="c">`を拾うためだとしたら、そより上に書いたコードでは正常に取得できない可能性があります。
5
+ * `<textarea>`内…通常のテキストとして処理さるの、`&#***;`解釈される
6
+
7
+ * 属性値…`&#***;`は解釈される
8
+
9
+ * `<script>`内…[特殊な処理](https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements)が行われ、`&#***;`は**解釈されない**
6
10
 
7
11
 
8
12
 
13
+ 結果、`.split('&#x1f600;')`という文字列の意味が場所によって違ってきて、「全く同じ処理内容」になっていないのです。
14
+
15
+
16
+
17
+ ## 以下、誤解による回答
18
+
19
+
20
+
21
+ ~~書く位置の問題ではないでしょうか。~~
22
+
23
+
24
+
25
+ ~~`c`が`<textarea id="c">`を拾うためだとしたら、それより上に書いたコードでは正常に取得できない可能性があります。~~
26
+
27
+
28
+
9
- (もっとも、このような「変数として直接拾う」という方法自体、あまり適当ではありません。`document.getElementById`など、エレメントを取得するメソッドを使うことをおすすめします)
29
+ ~~(もっとも、このような「変数として直接拾う」という方法自体、あまり適当ではありません。`document.getElementById`など、エレメントを取得するメソッドを使うことをおすすめします)~~