powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение данных формы при перезагрузке страницы
23 сообщений из 23, страница 1 из 1
Сохранение данных формы при перезагрузке страницы
    #39710874
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Задача немного не стандартная для меня. Есть форма, она вставляется через ифрейм в форме нету ни инпутов ни тега form и тп. Форма визуального редактора скриншот прилагаю. Как в ней сделать чтобы комментарии сохранялись в случае перезагрузки страницы.

http://prntscr.com/l0rsdx

Первый раз столкнулся с такой ситуацией.
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710882
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710888
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это с точки зрения грамотное решение самое грамотное. Я думал над этим но не могу понять откуда тянется этот редаткор там связи сложные ппц. Это битрикс. Была бы простая форма я бы локал сторадж сохранил бы и сделал проверку и подставил после перезагрузки через innerhtml но как тут сделать. Там в ифрейме тупо body и в него текст подставляется. Реально не сталкивался с таким
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710903
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotТам в ифрейме тупо body и в него текст подставляетсяА если текст вытащить, типа такого:
Код: javascript
1.
iframe.contentWindow.document.body.innerHTML
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710907
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
var abc = iframe.contentWindow.document.body.innerHTML;
    console.log(abc);
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710909
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,

сделал так но он ошибку отдает по синтаксису http://prntscr.com/l0sdwx
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710976
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,

правильная ошибка
Сам iframe надо получить также, как мы получаем DIV, Table и прочие элементы. Например, через id.
Если взять скриншот из 1-го сообщения, то так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function gid(i) {return document.getElementById(i);}
function QS(el,s) {return el.querySelector(s);}

var iframe = gid('bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE').children[0];
// или
var iframe = QS(gid('bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE'), 'iframe');
// или
var iframe = QS(document.body, '#bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE iframe');
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710987
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUserangrybot,

правильная ошибка
Сам iframe надо получить также, как мы получаем DIV, Table и прочие элементы. Например, через id.
Если взять скриншот из 1-го сообщения, то так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
function gid(i) {return document.getElementById(i);}
function QS(el,s) {return el.querySelector(s);}

var iframe = gid('bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE').children[0];
// или
var iframe = QS(gid('bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE'), 'iframe');
// или
var iframe = QS(document.body, '#bx-html-editor-iframe-cnt-POST_COMMENT_MESSAGE iframe');



А почему сразу не по имени класса? Зачем столько телодвижений?
Код: javascript
1.
var iframe = document.getElementsByClassName("bx-editor-iframe")[0];
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39710995
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUser спасибо за код. но у Polar проще вариант) обращения к классу. Народ но тут одна проблемка выявилась. Фишка в том, что эта форма в которой этот класс подгружается не в DOM и даже если поставить скрипт на загрузку после всего DOM он не появиться т.к. там есть табы и в табе кнопка которая аяксом уходит на вызов этого проклятого редактора, вот я попал
вот скрин http://prntscr.com/l0tyku а вот после клика http://prntscr.com/l0tyqp

как лучше такое обыграть ?
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711012
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,
на кнопку mouseup( чтобы click не переписывать) вешай функцию с задержкой, чтобы форма успела загрузиться.
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711020
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polar,

можно пример, т.е я делаю клик по классу кнопки, потом делаю клик по классу "оставить комментарий", потом задержка и только потом в DOM лезу как выше ?
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711023
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,

к слову вот https://lider-gk24.ru/catalog/fartuki-khalaty-maski/maska-3-kh-sloynaya-chernaya-50-sht-upak/ для более подробного просмотра классов
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711031
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,

Ситуация становится все запутаннее и запутаннее )))

Человек пишет отзыв на товар в онлайн редакторе, потом перегружает страницу, и тебе надо подставить текст, который он писал, в этом редакторе?
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711034
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, чтобы сохранить текст чтобы не сбрасывался, т.к. если капчу неверно заполнить то капец, я и думал добраться до текста через классы и потом вытащить через innerHTML текст и писануть его в local storage а потом уже проверку делать ) ну или как то так, такие мысли были по крайней мере )
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711039
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotДа, чтобы сохранить текст чтобы не сбрасывался, т.к. если капчу неверно заполнить то капец, я и думал добраться до текста через классы и потом вытащить через innerHTML текст и писануть его в local storage а потом уже проверку делать ) ну или как то так, такие мысли были по крайней мере )

Ну тогда правильно.
На кнопку Добавить коментарий на mouseup вешаешь код с задержкой, который загружает из хранилища ранее введенный текст и вешает на mouseup кнопки "Отправить" код, который сохраняет данные в локал сторадж.

как-то так.
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711050
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PolarНа кнопку Добавить коментарий на mouseup вешаешь код с задержкой, который загружает из хранилища ранее введенный текст и вешает на mouseup кнопки "Отправить" код, который сохраняет данные в локал сторадж.

как-то так.

Не забудь оставить много-много комментариев, а то если кто-то потом в этом будет разбираться, то он застрелится, а тебя посадят за доведение до суицида.
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711064
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерный пример покажешь с вызовом, боюсь запутаться, и итоговый код сюда скину с ключами чтобы проиндексировалось пригодиться кому то однозначно
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711092
Polar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Получаем элемент кнопка "Добавить комментарий" buttonAddComment;
buttonAddComment.mouseup(
     function(){
          setTimeout(function(){
                 var iframe = document.getElementsByClassName("bx-editor-iframe")[0];
                 iframe.document.body.innerHTML = текст из хранилища;
                 получаем элемент кнопка "Отправить" buttonSendComment;
                 buttonSendComment.mouseup(function(){
                        var iframe = document.getElementsByClassName("bx-editor-iframe")[0];
                        текст в хранилище = iframe.document.body.innerHTML;
                 });

          },1000); // 1000 это задержка в 1 секунду чтобы успели создаться элементы формы
     

     })



типа вот так. Думаю получить элементы кнопки ты сам сможешь.
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39711476
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polar,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 document.getElementsByClassName("add_coment_a")[0].click(
     function(){
          setTimeout(function(){
                 var iframe_a = document.getElementsByClassName("bx-editor-iframe")[0];
                 iframe_a.document.body.innerHTML;
                 document.getElementsByClassName("send_a_button")[0].click(function(){
                        var iframe_a = document.getElementsByClassName("bx-editor-iframe")[0];
                        iframe_a.document.body.innerHTML;
                 });

          },2000); 
   
     })



Сделал так но не получается, т.е. при клике на ссылку добавить комментарий, срабатывает функция которая получает содержимое блока bx-editor-iframe а дальше при кнопке отправить с классом send_a_button подставляет его обратно, но тут минус большой, страница сначала перекидывает на предупреждение что Вы ввели некорректные данные, а потом возвращает обратно и получается уже все потеряно, как local storage в таком случае использовать ? Чтобы сохранить данные в этой форме к примеру на 1 день
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39712510
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ ай нид хелп
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39712809
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot,

а если вместо Local Storage использовать базу на сервере?
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39712813
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQLPowerUserangrybot,

а если вместо Local Storage использовать базу на сервере?

Ну там битрикс и это как бы поле предупреждение из за которого все стирается, идет на следующую страницу. А добраться до DOM тяжеловато, но вроде добрались, но там фишка что при перезагрузке данные падают т.к. идет перезагрузка, вот и возникла потребность в local storage чтобы писануть результат и потом его подставить туда, код выше в целом на 70% правильный но вот как сделать проверку на local storage и вписать данные из него в проверке уже не получается у меня
...
Рейтинг: 0 / 0
Сохранение данных формы при перезагрузке страницы
    #39712823
SQLPowerUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotно вот как сделать проверку на local storage и вписать данные из него в проверке уже не получается у меняИз этого учебного примера работает?
Код: javascript
1.
2.
3.
4.
localStorage.setItem('userName', 'taranfx'); // определяем переменную в localStorage
alert("Вас зовут: " + localStorage.getItem('userName')); // доступ к ней
alert("Привет " + localStorage.userName); // доступ к ней по другому
localStorage.removeItem('userName'); // в конце удаляем ее

Ну и в Вашем случае дальше по аналогии...

з.ы. с Битрикс не работал, какие там есть подводные камни, неизвестно. Только если поискать в гугле какий-нибудь специализированный форум по Битрикс.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение данных формы при перезагрузке страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]