回答編集履歴
4
誤字を修正
answer
CHANGED
@@ -78,7 +78,7 @@
|
|
78
78
|
```
|
79
79
|
|
80
80
|
これを利用して、以下のようにすることで目的のコードが実現できます。
|
81
|
-
※`escapeUnicode`関数は
|
81
|
+
※`escapeUnicode`関数は既に定義済みであるものとします。
|
82
82
|
|
83
83
|
```HTML
|
84
84
|
<input type="text" id="input">
|
3
説明の追加
answer
CHANGED
@@ -131,6 +131,11 @@
|
|
131
131
|
|
132
132
|
ちなみにしれっと使っていますが、DOM要素に文字列を設定する場合は`innerHTML`ではなく`textContent`を利用してください。
|
133
133
|
このコードでは`textContent`に対応していないブラウザのため、`setText`関数を定義しています。
|
134
|
+
`innerHTML`は処理が重い問題もあるため、可能な限り利用しないようにしましょう。
|
134
135
|
|
136
|
+
また、input要素の入力値は`value`で取得できます。
|
137
|
+
`charCode`または`keyCode`は押されたキーボードのキーの番号を返すもので、これはキーボード操作をJavaScriptで実現する時などに利用します。
|
138
|
+
|
135
|
-
|
139
|
+
さらに、文字列が入力された時に処理を行う場合は`keydown`イベントや`keypress`イベントではなく、`input`イベントを利用してください。
|
136
|
-
右クリックメニューでコピー&ペーストされた場合、`keydown`イベントや`keypress`イベントでは処理されません。
|
140
|
+
右クリックメニューでコピー&ペーストされた場合、`keydown`イベントや`keypress`イベントでは処理されません。
|
141
|
+
この`input`イベントは古いブラウザには対応していないため、目的の環境で動作しない等の問題がありましたらお知らせください。
|
2
0埋めの処理を忘れていたため、編集
answer
CHANGED
@@ -62,8 +62,10 @@
|
|
62
62
|
while (!Number.isNaN(char_code = str.charCodeAt(index++))) {
|
63
63
|
/**
|
64
64
|
* 文字に対応するUnicode番号を16進数文字列に変換
|
65
|
+
* 4桁になるよう、0埋めも行う
|
66
|
+
* @link http://stabucky.com/wp/archives/4655
|
65
67
|
*/
|
66
|
-
hex_char_code = char_code.toString(16);
|
68
|
+
hex_char_code = ('000' + char_code.toString(16)).slice(-4);
|
67
69
|
|
68
70
|
/**
|
69
71
|
* Unicodeエスケープシーケンスを出力文字列に追加
|
1
「関数化すると」では情報が不足していると判断。「文字列を扱えるように関数化すると」に変更。
answer
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
// 「12354」を出力します。
|
25
25
|
```
|
26
26
|
|
27
|
-
関数化すると以下のようになります。
|
27
|
+
文字列を扱えるように関数化すると以下のようになります。
|
28
28
|
|
29
29
|
```JavaScript
|
30
30
|
/**
|