website/modules/contrib/webform/js/webform.behaviorsdfb4.js
2023-09-30 09:40:37 +02:00

42 lines
1.4 KiB
JavaScript

/**
* @file
* Webform behaviors.
*/
(function ($, Drupal) {
'use strict';
// Trigger Drupal's attaching of behaviors after the page is
// completely loaded.
// @see https://stackoverflow.com/questions/37838430/detect-if-page-is-load-from-back-button
// @see https://stackoverflow.com/questions/20899274/how-to-refresh-page-on-back-button-click/20899422#20899422
var isChrome = (/chrom(e|ium)/.test(window.navigator.userAgent.toLowerCase()));
if (isChrome) {
// Track back button in navigation.
// @see https://stackoverflow.com/questions/37838430/detect-if-page-is-load-from-back-button
var backButton = false;
if (window.performance) {
var navEntries = window.performance.getEntriesByType('navigation');
if (navEntries.length > 0 && navEntries[0].type === 'back_forward') {
backButton = true;
}
else if (window.performance.navigation
&& window.performance.navigation.type === window.performance.navigation.TYPE_BACK_FORWARD) {
backButton = true;
}
}
// If the back button is pressed, delay Drupal's attaching of behaviors.
if (backButton) {
var attachBehaviors = Drupal.attachBehaviors;
Drupal.attachBehaviors = function (context, settings) {
setTimeout(function (context, settings) {
attachBehaviors(context, settings);
}, 300);
};
}
}
})(jQuery, Drupal);