Project

General

Profile

Feature #16990

Updated by Enis Nuredini 7 months ago

Es gibt Situtationen wie selbsterstellte Buttons in Formularen mit welcher eine Action ausgeführt wird und dabei nur ein Page reload stattfindet. In einer solchen Situation wird erwartet dass kein History Eintrag im Browser erstellt wird.  

 Für diesen Fall wurde etwas im Medtool umgesetzt bei welchem es sich mithilfe einer Klasse "ignoreHistory" angewendet werden kann. Der dort verwendete JS sieht so aus (Achtung: Folgender Skript ist nur für Situationen ausgelegt in welcher ein Bestätigungsfenster erscheint (Alert Container, parameter: |q). Muss auch für ohne ausgebaut werden.): 
 <pre><code class="javascript"> 
 document.addEventListener("DOMContentLoaded", function() { 
   var buttons = document.querySelectorAll('[data-ignore-history]'); document.querySelectorAll('.ignoreHistory'); 

   buttons.forEach(function(button) { 
     button.addEventListener('click', function(event) { 

       /// Preventing the default action of the button click 
       event.preventDefault(); 

       var okButton = document.querySelector('.alert-interactive .btn-group button:first-child'); 

       // Getting the URL from the href attribute 
       var url = event.target.href; 

       // Add a click event listener for the "Ok" button inside the alert 
       if (okButton) { 
         okButton.addEventListener('click', function() {   
           if (url) { 
             event.preventDefault(); 
             // Navigate to the URL without adding it to the browser history 
             window.location.replace(url); 
             url = ''; // Clear the URL 
           } 
         }); 
       } else { 
         window.location.replace(url); 
       } 
     }); 
   }); 
 }); 
 </code></pre> 

 Optimal wäre es wenn die Funktionalität in unseren bestehenden JS Files von QFQ implementiert wird. Danach sollte die Klasse entweder von QFQ anhand eines neuen qualifiers vergeben werden oder der User gibt die Klasse spezifisch mit.

Back