Хак Подтверждение ухода со страницы при редактировании (админпанель)

Тема в разделе "DLE", создана пользователем eshkin, 20 фев 2015.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. eshkin

    eshkin

    Регистр.:
    13 апр 2006
    Сообщения:
    598
    Симпатии:
    256
    Привет.
    Иногда, при редактировании или добавлении материалов на сайт, случайно нажмёшь бекспейс или линк ткнёшь - и ... все изменения нужно вводить заново.
    Как можно подстраховаться? Я сконструировал для себя решение, которое удовлетворяет мои потребности, может быть кому нибудь пригодится.
    Данное решение учитывает изменения в формах, реагирует на не санкционированный переход или обновление страницы.
    На кнопку, призванную вносить изменения данное решение не реагирует.

    Тестировалось на 10.3
    Думаю, что данное решение подойдет и для версий ниже.

    в файле /engine/skins/javascripts/application.js

    дописать
    Код:
    $(document).ready(function() {
    $('input,select,textarea').change(function() {
    window.onbeforeunload = function(){  return 'Уйти без сохранения изменений?';} });
    $('input[type="submit"]').click(function(e){  window.onbeforeunload = function(){  return ;}});
    });
    Не претендует на кроссбраузерность, я удовлетворён что работает на chromium движках
     
    Attyla, SPoX, killoff и ещё 1-му нравится это.
  2. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    159
    Симпатии:
    43
    Как альтернативный вариант можно прикрутить http://sisyphus-js.herokuapp.com/ к форме добавления новостей.
     
    elwebmaestro нравится это.