/** * @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);