浏览代码

deserialize state values

Hakim El Hattab 11 年之前
父节点
当前提交
1c2f4a2e92
共有 2 个文件被更改,包括 21 次插入10 次删除
  1. 20 9
      js/reveal.js
  2. 1 1
      js/reveal.min.js

+ 20 - 9
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;

文件差异内容过多而无法显示
+ 1 - 1
js/reveal.min.js


部分文件因为文件数量过多而无法显示