Forráskód Böngészése

don't write '#/' to url on first slide, remove history api feature detection

Hakim El Hattab 5 éve
szülő
commit
c91074761a
4 módosított fájl, 14 hozzáadás és 8 törlés
  1. 0 0
      dist/reveal.esm.js
  2. 0 0
      dist/reveal.js
  3. 13 5
      js/controllers/location.js
  4. 1 3
      js/utils/device.js

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
dist/reveal.esm.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
dist/reveal.js


+ 13 - 5
js/controllers/location.js

@@ -1,5 +1,3 @@
-import { supportsHistoryAPI } from '../utils/device.js'
-
 /**
  * Reads and writes the URL based on reveal.js' current state.
  */
@@ -121,15 +119,24 @@ export default class Location {
 			this.writeURLTimeout = setTimeout( this.writeURL, delay );
 		}
 		else if( currentSlide ) {
+
+			let hash = this.getHash();
+
 			// If we're configured to push to history OR the history
 			// API is not avaialble.
-			if( config.history || supportsHistoryAPI === false ) {
-				window.location.hash = this.getHash();
+			if( config.history ) {
+				window.location.hash = hash;
 			}
 			// If we're configured to reflect the current slide in the
 			// URL without pushing to history.
 			else if( config.hash ) {
-				window.history.replaceState( null, null, '#' + this.getHash() );
+				// If the hash is empty, don't add it to the URL
+				if( hash === '/' ) {
+					window.history.replaceState( null, null, window.location.pathname + window.location.search );
+				}
+				else {
+					window.history.replaceState( null, null, '#' + hash );
+				}
 			}
 			// UPDATE: The below nuking of all hash changes breaks
 			// anchors on pages where reveal.js is running. Removed
@@ -141,6 +148,7 @@ export default class Location {
 			// else {
 			// 	window.history.replaceState( null, null, window.location.pathname + window.location.search );
 			// }
+
 		}
 
 	}

+ 1 - 3
js/utils/device.js

@@ -12,6 +12,4 @@ export const isAndroid = /android/gi.test( UA );
 // up slides. Zoom produces crisper results but has a lot of
 // xbrowser quirks so we only use it in whitelisted browsers.
 export const supportsZoom = 'zoom' in testElement.style && !isMobile &&
-				( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );
-
-export const supportsHistoryAPI = typeof window.history.replaceState === 'function' && !/PhantomJS/.test( UA );
+				( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott