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

http://prntscr.com/l0rsdx

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

сделал так но он ошибку отдает по синтаксису http://prntscr.com/l0sdwx
...
Рейтинг: 0 / 0
01.10.2018, 15:27
    #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
01.10.2018, 15:36
    #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
01.10.2018, 15:41
    #39710995
angrybot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных формы при перезагрузке страницы
SQLPowerUser спасибо за код. но у Polar проще вариант) обращения к классу. Народ но тут одна проблемка выявилась. Фишка в том, что эта форма в которой этот класс подгружается не в DOM и даже если поставить скрипт на загрузку после всего DOM он не появиться т.к. там есть табы и в табе кнопка которая аяксом уходит на вызов этого проклятого редактора, вот я попал
вот скрин http://prntscr.com/l0tyku а вот после клика http://prntscr.com/l0tyqp

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

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

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

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

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

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

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

как-то так.

Не забудь оставить много-много комментариев, а то если кто-то потом в этом будет разбираться, то он застрелится, а тебя посадят за доведение до суицида.
...
Рейтинг: 0 / 0
01.10.2018, 16:36
    #39711064
angrybot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных формы при перезагрузке страницы
Примерный пример покажешь с вызовом, боюсь запутаться, и итоговый код сюда скину с ключами чтобы проиндексировалось пригодиться кому то однозначно
...
Рейтинг: 0 / 0
01.10.2018, 17:10
    #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
02.10.2018, 09:48
    #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
03.10.2018, 15:31
    #39712510
angrybot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных формы при перезагрузке страницы
Народ ай нид хелп
...
Рейтинг: 0 / 0
04.10.2018, 09:57
    #39712809
SQLPowerUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение данных формы при перезагрузке страницы
angrybot,

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

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

Ну там битрикс и это как бы поле предупреждение из за которого все стирается, идет на следующую страницу. А добраться до DOM тяжеловато, но вроде добрались, но там фишка что при перезагрузке данные падают т.к. идет перезагрузка, вот и возникла потребность в local storage чтобы писануть результат и потом его подставить туда, код выше в целом на 70% правильный но вот как сделать проверку на local storage и вписать данные из него в проверке уже не получается у меня
...
Рейтинг: 0 / 0
04.10.2018, 10:15
    #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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Сохранение данных формы при перезагрузке страницы / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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