Сохранение события с помощью addEventListener перед загрузкой, не запускаемой при добавлении вложений в форме Sharepoint - PullRequest
0 голосов
/ 21 июня 2019

Я использую IE11, JavaScript и SharePoint 2013. Существует главная страница, на которой открывается новая вкладка формы (NewForm.aspx) для добавления или форма вкладки редактирования (EditForm.aspx) для редактирования записи.

Когда пользователь сохраняет в новой вкладке формы, он сохраняет данные, обновляет главную страницу и закрывает новую вкладку формы.

Когда пользователь сохраняет на вкладке формы редактирования, он сохраняет данные, обновляет главную страницу, обновляет вкладку формы редактирования и остается на этой записи вкладки формы редактирования.

Это прекрасно работает с кодом, представленным ниже, за исключением случаев, когда пользователь прикрепляет файлы с помощью кнопки «Прикрепить файл» на ленте SP.Он входит в событие «Сохранить щелчок», нажимает window.addEventListener и пропускает его.По умолчанию пользователь возвращается в список библиотек SP AllItems.aspx.

Я попытался поместить код только в клик Сохранить, а не в прослушиватель событий beforeunload, но вложение не сохраняется в элементе.

Я попытался захватить событие прикрепления файла($('input[id=attachOKbutton]')) и добавление прослушивателя перед загрузкой.

Опять же, проблема заключается в том, чтобы сохранить запись и остаться на вкладке EditForm, даже когда пользователь присоединяет файл.

$(function() {
  $('input[value=Save]').click(function() {
    window.addEventListener("beforeunload", function(event) {  //does not go in here if file is attached
        var idxForm = location.pathname.indexOf("NewForm.aspx");
        if( idxForm >= 0 ) {  //NewForm - Saving a new record
            window.opener.location.reload(); //Refresh calling page
            window.close();
        }
        var idxForm2 = location.pathname.indexOf("EditForm.aspx")
        if( idxForm2 >= 0 ) {  //EditForm - Saving an update to a existing record
            window.opener.location.reload(); //Refresh calling page
            history.go(-1);
            location.reload(true);
        }   
    });
   });
});

ActualРезультаты: Либо запись сохраняется с вложениями, и пользователь направляется в библиотеку SP AllItems.aspx ИЛИ пользователь остается на вкладке EditForm.aspx, но запись не обновляется с добавленным вложением.

Желаемые / ожидаемые результаты:Выполните точно так же, как это происходит, когда пользователь сохраняет без добавления вложений ... Страница вызова обновляется, страница редактирования обновляется, а пользователь остается на странице редактирования.Это должно произойти, когда пользователь также добавляет вложения.

1 Ответ

0 голосов
/ 02 июля 2019

Закончено задание файла cookie сеанса для события сохранения с URL-адресом EditForm и его проверка в AllItems.aspx, поэтому, если он равен true, он будет перенаправлен обратно на определенную страницу записи редактирования.

...