From 1c2f4a2e9243d43abf1f6606cfba079daa7d72f7 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Wed, 12 Mar 2014 08:51:51 +0100 Subject: deserialize state values --- js/reveal.js | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'js/reveal.js') diff --git a/js/reveal.js b/js/reveal.js index 5cb72eb..aa9f7b1 100644 --- a/js/reveal.js +++ b/js/reveal.js @@ -754,6 +754,22 @@ var Reveal = (function(){ } + /** + * Utility for deserializing a value. + */ + function deserialize( value ) { + + if( typeof value === 'string' ) { + if( value === 'null' ) return null; + else if( value === 'true' ) return true; + else if( value === 'false' ) return false; + else if( value.match( /^\d+$/ ) ) return parseFloat( value ); + } + + return value; + + } + /** * Measures the distance in pixels between point a * and point b. @@ -2352,9 +2368,9 @@ var Reveal = (function(){ function setState( state ) { if( typeof state === 'object' ) { - slide( state.indexh, state.indexv, state.indexf ); - togglePause( state.paused ); - toggleOverview( state.overview ); + slide( deserialize( state.indexh ), deserialize( state.indexv ), deserialize( state.indexf ) ); + togglePause( deserialize( state.paused ) ); + toggleOverview( deserialize( state.overview ) ); } } @@ -3430,12 +3446,7 @@ var Reveal = (function(){ for( var i in query ) { var value = query[ i ]; - query[ i ] = unescape( value ); - - if( value === 'null' ) query[ i ] = null; - else if( value === 'true' ) query[ i ] = true; - else if( value === 'false' ) query[ i ] = false; - else if( value.match( /^\d+$/ ) ) query[ i ] = parseFloat( value ); + query[ i ] = deserialize( unescape( value ) ); } return query; -- cgit v1.2.3