回答編集履歴
1
Textのいてれーと
answer
CHANGED
@@ -28,4 +28,13 @@
|
|
28
28
|
|
29
29
|
そもそもループなしで`document.body.innerHTML = document.body.innerHTML.replace(/あ/g, "い")`だけで目的を達成できるのではないでしょうか。
|
30
30
|
|
31
|
-
あと、拡張機能特有の話になりますが、対象ページ内のノードを勝手に再構築するとページ本来の挙動が壊れる可能性がものすごく高くなります。できるだけノードの作り直しはしないで、`Text`ノードの`data`プロパティを更新したほうが安全です。
|
31
|
+
あと、拡張機能特有の話になりますが、対象ページ内のノードを勝手に再構築するとページ本来の挙動が壊れる可能性がものすごく高くなります。できるだけノードの作り直しはしないで、`Text`ノードの`data`プロパティを更新したほうが安全です。
|
32
|
+
|
33
|
+
追記: document.body 以下の `Text` ノードの `data` プロパティを置換するには以下のようにします。
|
34
|
+
```javascript
|
35
|
+
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
|
36
|
+
let text;
|
37
|
+
while ((text = walker.nextNode())) {
|
38
|
+
text.data = text.data.replace(/あ/g, "い");
|
39
|
+
}
|
40
|
+
```
|