У меня есть следующее требование:
В сообществе есть 3 вкладки - Домашняя страница (Тип страницы сообщества и показ одного компонента Lightning) - A (Тип страницы сообщества и показ одного компонента Lightning) -B (Напечатайте как страницу сообщества и показывая один компонент Lightning)
Теперь A и B содержат формы, такие как вводимый текст и все, поэтому на каждой из них есть кнопка сохранения. Требуется предупредить пользователя, если пользователь покидает страницу, не сохраняя форму.
Это означает, что пользователь нажимает кнопку назад / Далее / Обновить или любые другие вкладки, такие как Домой или А или В, допри нажатии на кнопку сохранения они получат сообщение с подтверждением.
Rerender.js файл с кодом ниже:
window.addEventListener("beforeunload", function (e) {
var abc = component.get('v.isUnSavedChanges');
if (!abc) {
return undefined;
}else{
var confirmationMessage = 'UNSAVED CHANGES.';
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}
});,
С кодом выше он работает, когда пользователь обновляет / вручную изменяет URLперед сохранением они получат сообщение, моя проблема в том, что когда пользователь нажимает на другие вкладки (Домой или A (Если на B) или B (Если на A), сообщение не запускается.
Дальнейшее копание я нашелчто если тип пункта меню навигации - Внешний URL (https://www/google.co.in), то он работает нормально, но при нажатии на вкладки ничего не вызывается
Я прочитал, что эти элементы меню навигации являются относительными URL,поэтому они могут не обновлять страницу: FYI, ссылка: https://help.salesforce.com/articleView?id=rss_setup_nav_menu.htm - страница сообщества - ссылки на страницу внутри вашего сообщества с использованием относительного URL. Например, /contactsupport.
Итак, на мой взгляд, есть 3 возможных решения, но для того, чтобы сделать то же самое, нужно некоторое руководство / исправление или фрагмент кода: 1. Есть ли способ узнать, когда щелкает элемент меню навигации в файле controller.js? 2. Можем ли мы изменить макет темы, чтобы показать наш собственный Навбар (так что при нажатии на navBar у нас может быть свой собственный код, например: https://trailhead.salesforce.com/en/content/learn/projects/communities_theme_layout/create_component 3. Есть ли в любом случае использование Jquery или что-то еще
Пожалуйста, помогите на этом
Спасибо, Nru