From b8de5e02d21de9389b82d90effd65b1fcd8b5799 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 21 Mar 2019 09:13:28 +0100 Subject: [PATCH] make #2350 work using replaceState --- js/reveal.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/js/reveal.js b/js/reveal.js index f03c5cc..65866cc 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -4290,19 +4290,24 @@ writeURLTimeout = setTimeout( writeURL, delay ); } else if( currentSlide ) { + // If we're configured to push to history OR the history + // API is not avaialble. if( config.history || !window.history ) { window.location.hash = locationHash(); } + // If we're configured to refelct the current slide in the + // URL without pushing to history. else if( config.hash ) { - window.history.replaceState(null, null, '#' + locationHash()); + window.history.replaceState( null, null, '#' + locationHash() ); + } + // If history and hash are both disabled, a hash may still + // be added to the URL by clicking on a href with a hash + // target. Counter this by always removing the hash. + else { + window.history.replaceState( null, null, window.location.pathname + window.location.search ); } - else { - window.location.hash = ''; - } } - - } /** * Retrieves the h/v location and fragment of the current,