Skip to content

Commit c188af9

Browse files
committed
Fixes asual#121 and adds a proper test.
1 parent 604fc57 commit c188af9

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

src/jquery.address.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,10 @@
205205
}
206206
}, 50);
207207
}
208-
209208
_st(function() {
210209
_trigger('init');
211210
_update(FALSE);
212211
}, 1);
213-
214212
if (!_supportsState()) {
215213
if (_hashchange) {
216214
if (_t.addEventListener) {
@@ -222,6 +220,9 @@
222220
_si(_listen, 50);
223221
}
224222
}
223+
if ('state' in window.history) {
224+
$(window).trigger('popstate');
225+
}
225226
}
226227
},
227228
_enable = function() {
@@ -264,13 +265,14 @@
264265
var href = $(this).attr('href').replace(/^http:/, '').replace(new RegExp(base + '/?$'), '');
265266
if (href === '' || href.indexOf(fragment) != -1) {
266267
$(this).attr('href', '#' + encodeURI(decodeURIComponent(href.replace(new RegExp('/(.*)\\?' +
267-
fragment + '=(.*)$'))), '!$2'));
268+
fragment + '=(.*)$'), '!$2'))));
268269
}
269270
});
270271
}
271272
}
272273
},
273274
UNDEFINED,
275+
NULL = null,
274276
ID = 'jQueryAddress',
275277
STRING = 'string',
276278
HASH_CHANGE = 'hashchange',
@@ -307,7 +309,6 @@
307309
_title = _d.title,
308310
_silent = FALSE,
309311
_loaded = FALSE,
310-
_justset = TRUE,
311312
_juststart = TRUE,
312313
_updating = FALSE,
313314
_listeners = {},
@@ -446,10 +447,6 @@
446447
_frame.contentWindow.document.title = value;
447448
_juststart = FALSE;
448449
}
449-
if (!_justset && _browser.mozilla) {
450-
_l.replace(_l.href.indexOf('#') != -1 ? _l.href : _l.href + '#');
451-
}
452-
_justset = FALSE;
453450
}, 50);
454451
return this;
455452
}
@@ -464,7 +461,6 @@
464461
if (_value == value && !_updating) {
465462
return;
466463
}
467-
_justset = TRUE;
468464
_value = value;
469465
if (_opts.autoUpdate || _updating) {
470466
_update(TRUE);
@@ -534,7 +530,7 @@
534530
if (value !== UNDEFINED) {
535531
var names = this.parameterNames();
536532
params = [];
537-
value = value ? value.toString() : '';
533+
value = value === UNDEFINED || value === null ? '' : value.toString();
538534
for (i = 0; i < names.length; i++) {
539535
var n = names[i],
540536
v = this.parameter(n);

test/test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,17 @@ asyncTest('Parameter test', function() {
8989
$.address.autoUpdate(false)
9090
.queryString('')
9191
.parameter('p', 1, true)
92-
.parameter('p', 2)
93-
.parameter('p', 3, true)
92+
.parameter('p', 0)
93+
.parameter('p', 2, true)
9494
.parameter('s', 1)
9595
.parameter('s', 2, true)
9696
.parameter('s', 3)
9797
.parameter('t', 0)
9898
.parameter('t', null)
9999
.autoUpdate(true)
100100
.update();
101-
equals($.address.value(), '/test?p=2&p=3&s=3');
102-
same($.address.parameter('p'), ['2','3']);
101+
equals($.address.value(), '/test?p=0&p=2&s=3');
102+
same($.address.parameter('p'), ['0','2']);
103103
equals($.address.parameter('s'), 3);
104104
same($.address.parameterNames(), ['p','s']);
105105
start();

0 commit comments

Comments
 (0)