// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
/**
- *
+ * 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]);
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 = "";
first = false;
});
window.location.hash = fragmentsStr;
-}
+};
\ No newline at end of file