From 2c69a6735e8af5d1b9b73fd221274d374e8efdea Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Mon, 6 May 2013 14:53:45 -0700 Subject: fix($location): prevent navigation when event isDefaultPrevented --- src/jqLite.js | 2 +- src/ng/location.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/jqLite.js b/src/jqLite.js index 0abae3d7..958242cd 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -560,7 +560,7 @@ function createEventHandler(element, events) { } event.isDefaultPrevented = function() { - return event.defaultPrevented; + return event.defaultPrevented || event.returnValue == false; }; forEach(events[type || event.type], function(fn) { diff --git a/src/ng/location.js b/src/ng/location.js index 4c31d0ad..4efa019c 100644 --- a/src/ng/location.js +++ b/src/ng/location.js @@ -527,7 +527,7 @@ function $LocationProvider(){ var absHref = elm.prop('href'); var rewrittenUrl = $location.$$rewrite(absHref); - if (absHref && !elm.attr('target') && rewrittenUrl) { + if (absHref && !elm.attr('target') && rewrittenUrl && !event.isDefaultPrevented()) { event.preventDefault(); if (rewrittenUrl != $browser.url()) { // update location manually -- cgit v1.2.3