X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=js%2Ffragment.js;h=4ffbf8fc3ad063c57d659527bc0aa22c10829515;hp=835c05eb8782f81bd7345621e68ef497701ab742;hb=5d9992368bb386d2e606ae037c5478fe10ac70e8;hpb=217c4d7a0d5f9fee3a8ef0a05ab8506c7f39d5e5 diff --git a/js/fragment.js b/js/fragment.js index 835c05e..4ffbf8f 100644 --- a/js/fragment.js +++ b/js/fragment.js @@ -17,16 +17,22 @@ // along with Euphorik. If not, see . /** - * + * Gestion du fragment d'url, permet de le modifier en direct. */ Fragment = function() { var thisFragment = this; + // remplacement des codes de type %22 (en hexa) + var replaceHtmlCode = function(str) { + return str.replace(/%(\d\d)/g, function(text, code) { + return String.fromCharCode(parseInt(code, 16)); + }); + }; this.fragments = {}; if (!window.location.hash) { return; } try { - var fragmentsStr = window.location.hash.slice(1).split(";"); + var fragmentsStr = replaceHtmlCode(window.location.hash.slice(1)).split(";"); fragmentsStr.each(function(i, tuple) { tuple = tuple.split("="); thisFragment.fragments[tuple[0]] = JSON.parse(tuple[1]); @@ -38,25 +44,25 @@ Fragment = function() { Fragment.prototype.setVal = function(name, val) { this.fragments[name] = val; -} +}; Fragment.prototype.getVal = function(name) { return this.fragments[name]; -} +}; Fragment.prototype.delVal = function(name) { delete this.fragments[name]; -} +}; Fragment.prototype.eraseAllVal = function() { this.fragments = []; -} +}; Fragment.prototype.each = function(fun) { objectEach(this.fragments, function(name, val) { fun(name, val); }); -} +}; Fragment.prototype.write = function() { var fragmentsStr = ""; @@ -66,4 +72,4 @@ Fragment.prototype.write = function() { first = false; }); window.location.hash = fragmentsStr; -} +}; \ No newline at end of file