Не обновляется текст (replace() JS) после перезагрузки страницы
Пытаюсь автоматизировать задание маркетолога, и нужно сделать простенький скрипт для замены текста в документе.
Проблема заключается в том, что после перезагрузки страницы текст не обновляется, а остаётся прежним (Хоть он и изменился после запуска скрипта).
Сайт сторонний, не мой, пишу лишь скрипт для замены.
function changeText() {
let text = /Text/g;
let replaceText = "Privet";
document.getElementsByClassName("fr-element fr-view")[0].innerHTML = document.getElementsByClassName("fr-element fr-view")[0].innerHTML.replace(text,replaceText);
document.getElementById("article-create").click();
}
changeText();
Т.е после нажатия кнопки (На сайте это кнопка "SAVE"), по-идее должно произойти сохранение документа, но этого не происходит.
Дополнительная загвоздка вот какая:
1.Запуск скрипта и изменение текста
2.НАЖИМАЕМ на текст в div'е
3.Нажимаем на кнопку Save
4.Перезагружаем страницу
5.Profit
Но метод click/focus для div никаким образом не работает.
div:
<div class="fr-element fr-view" dir="auto" contenteditable="true"
style="min-height: 50vh;" aria-disabled="false" spellcheck="false">
//Some text here//
</div>
Собственно есть два пути:
- Сделать что-то с сохранением и перезагрузкой
- Сделать нажатие на этот div (Ещё раз отмечу, что click() никаким образом не работает, когда нажимаю вручную на этот самый DIV, то сразу появляется курсор в том месте куда я нажал и появляется border этого div'a)
Ответы (1 шт):
При нажатии на поле ввода - будет происходить замена текста.
При нажатии на кнопку данные будут сохраняться в localstorage.
Пример:
function changeText() {
let text = /text/g;
let replaceText = "Privet";
let bz = document.getElementsByClassName("fr-element fr-view")[0];
bz.onfocus = function () { //При нажатии на input заменяем текст
bz.innerHTML = bz.innerHTML.replace(text,replaceText);
}
}
changeText();
var button = document.getElementById('article-create');
button.addEventListener('click', function () { // При нажатии на текст сохраняем в хранилище
let text = document.getElementsByClassName("fr-element fr-view")[0].innerHTML;
localStorage.setItem('text', text);
});
let text = localStorage.getItem('text'); // Берём значение из localstorage
if(text){ // Если значение не пустое
document.getElementsByClassName("fr-element fr-view")[0].innerHTML = text; // То добавляем текст в поле.
}
<div class="fr-element fr-view" dir="auto" contenteditable="true"
style="min-height: 50vh;" aria-disabled="false" spellcheck="false">
//Some text here//
</div>
<button id="article-create">Тык</button>