File tree Expand file tree Collapse file tree 3 files changed +9
-2
lines changed
Expand file tree Collapse file tree 3 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -560,7 +560,7 @@ function createEventHandler(element, events) {
560560 }
561561
562562 event . isDefaultPrevented = function ( ) {
563- return event . defaultPrevented ;
563+ return event . defaultPrevented || event . returnValue == false ;
564564 } ;
565565
566566 forEach ( events [ type || event . type ] , function ( fn ) {
Original file line number Diff line number Diff line change @@ -527,7 +527,7 @@ function $LocationProvider(){
527527 var absHref = elm . prop ( 'href' ) ;
528528 var rewrittenUrl = $location . $$rewrite ( absHref ) ;
529529
530- if ( absHref && ! elm . attr ( 'target' ) && rewrittenUrl ) {
530+ if ( absHref && ! elm . attr ( 'target' ) && rewrittenUrl && ! event . isDefaultPrevented ( ) ) {
531531 event . preventDefault ( ) ;
532532 if ( rewrittenUrl != $browser . url ( ) ) {
533533 // update location manually
Original file line number Diff line number Diff line change @@ -835,6 +835,12 @@ describe('$location', function() {
835835 jqLite ( link ) . attr ( 'href' , 'http://host.com/base/' ) ;
836836 browserTrigger ( link , 'click' ) ;
837837 expectRewriteTo ( $browser , 'http://host.com/base/' ) ;
838+
839+ jqLite ( link ) .
840+ attr ( 'href' , 'http://host.com/base/foo' ) .
841+ bind ( 'click' , function ( e ) { e . preventDefault ( ) ; } ) ;
842+ browserTrigger ( link , 'click' ) ;
843+ expect ( $browser . url ( ) ) . toBe ( 'http://host.com/base/' ) ;
838844 }
839845 ) ;
840846 } ) ;
@@ -1372,6 +1378,7 @@ describe('$location', function() {
13721378 expect ( location . $$rewrite ( 'http://other' ) ) . toEqual ( undefined ) ;
13731379 expect ( location . $$rewrite ( 'http://server/pre/' ) ) . toEqual ( 'http://server/pre/' ) ;
13741380 expect ( location . $$rewrite ( 'http://server/pre/#otherPath' ) ) . toEqual ( 'http://server/pre/#otherPath' ) ;
1381+ expect ( location . $$rewrite ( 'javascript:void(0)' ) ) . toEqual ( undefined ) ;
13751382 } ) ;
13761383 } ) ;
13771384
You can’t perform that action at this time.
0 commit comments