前提・実現したいこと
Notionに書き込んだ内容を置換したいと考えています
発生している問題・エラーメッセージ
HTMLの書き換えは出来たのですが、Notionのサーバへ変更が保存されていません
編集・複製・再読み込み時などに、置換前の文字が再度表示されてしまいます
▽実際に置換が出来ていない時のGif画像▽
該当のソースコード
javaScript
1let find = 'aaa'; // 置換前の文字 2let replace = '????'; // 置換後の文字 3 4function get_notion_elements() { 5 let all_div = document.getElementsByTagName('div'); 6 let elements = []; 7 8 for (let i = 0; i < all_div.length; i++) { 9 if (all_div[i].getAttribute('contenteditable') == 'true') { 10 elements.push(all_div[i]); 11 } 12 } 13 return elements; 14} 15 16let str = ""; // 一時的に文字列を格納する 17let num = 0; // 置換した回数 18let elements = get_notion_elements(); // 要素の取得 19 20for (let i = 0; i < elements.length; i++) { 21 str = elements[i].innerText; 22 while (str.includes(find)) { // 行の全ての文字を置換できるまでループ 23 str = str.replace(find, replace); 24 elements[i].innerText = str; 25 num++; 26 } 27} 28 29console.log(num + "箇所の置換を行いました");
試したこと
- 番号リスト
elements[i].innerText = str;
の直後に
elements[i].click()
としてクリックイベントを発火させてみましたがダメでした
2. document.execCommand()
を使えそうだったので、まずは選択範囲を用意することにしたのですが
var range = document.createRange();
range.selectNodeContents(elements[1]);
またはrange.setStart(elements[1], 0); range.setEnd(elements[1], 1);
とした後、window.getSelection(selection.addRange(range));
で選択しようにも出来ませんでした
補足情報
回答がありましたら、必要に応じて補足していきます
最終的には、このjavascriptを使用してchrome拡張機能を作りたいと考えています
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。