#320 fix routing bug in IE9
This commit is contained in:
parent
e9eb03285a
commit
105a936a06
1 changed files with 15 additions and 5 deletions
20
mithril.js
20
mithril.js
|
|
@ -605,13 +605,19 @@ var m = (function app(window, undefined) {
|
||||||
window[listener]()
|
window[listener]()
|
||||||
}
|
}
|
||||||
//config: m.route
|
//config: m.route
|
||||||
else if (arguments[0].addEventListener) {
|
else if (arguments[0].addEventListener || arguments[0].attachEvent) {
|
||||||
var element = arguments[0];
|
var element = arguments[0];
|
||||||
var isInitialized = arguments[1];
|
var isInitialized = arguments[1];
|
||||||
var context = arguments[2];
|
var context = arguments[2];
|
||||||
element.href = (m.route.mode !== 'pathname' ? $location.pathname : '') + modes[m.route.mode] + this.attrs.href;
|
element.href = (m.route.mode !== 'pathname' ? $location.pathname : '') + modes[m.route.mode] + this.attrs.href;
|
||||||
element.removeEventListener("click", routeUnobtrusive);
|
if (element.addEventListener) {
|
||||||
element.addEventListener("click", routeUnobtrusive)
|
element.removeEventListener("click", routeUnobtrusive);
|
||||||
|
element.addEventListener("click", routeUnobtrusive)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
element.detachEvent("onclick", routeUnobtrusive);
|
||||||
|
element.attachEvent("onclick", routeUnobtrusive)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//m.route(route, params)
|
//m.route(route, params)
|
||||||
else if (type.call(arguments[0]) === STRING) {
|
else if (type.call(arguments[0]) === STRING) {
|
||||||
|
|
@ -634,7 +640,10 @@ var m = (function app(window, undefined) {
|
||||||
};
|
};
|
||||||
redirect(modes[m.route.mode] + currentRoute)
|
redirect(modes[m.route.mode] + currentRoute)
|
||||||
}
|
}
|
||||||
else $location[m.route.mode] = currentRoute
|
else {
|
||||||
|
$location[m.route.mode] = currentRoute
|
||||||
|
redirect(modes[m.route.mode] + currentRoute)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
m.route.param = function(key) {
|
m.route.param = function(key) {
|
||||||
|
|
@ -687,8 +696,9 @@ var m = (function app(window, undefined) {
|
||||||
if (e.ctrlKey || e.metaKey || e.which === 2) return;
|
if (e.ctrlKey || e.metaKey || e.which === 2) return;
|
||||||
if (e.preventDefault) e.preventDefault();
|
if (e.preventDefault) e.preventDefault();
|
||||||
else e.returnValue = false;
|
else e.returnValue = false;
|
||||||
var currentTarget = e.currentTarget || this;
|
var currentTarget = e.currentTarget || e.srcElement;
|
||||||
var args = m.route.mode === "pathname" && currentTarget.search ? parseQueryString(currentTarget.search.slice(1)) : {};
|
var args = m.route.mode === "pathname" && currentTarget.search ? parseQueryString(currentTarget.search.slice(1)) : {};
|
||||||
|
while (currentTarget && currentTarget.nodeName.toUpperCase() != "A") currentTarget = currentTarget.parentNode
|
||||||
m.route(currentTarget[m.route.mode].slice(modes[m.route.mode].length), args)
|
m.route(currentTarget[m.route.mode].slice(modes[m.route.mode].length), args)
|
||||||
}
|
}
|
||||||
function setScroll() {
|
function setScroll() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue