cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Clark Pan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-5694) location.replace does not behave as expected
Date Sun, 05 Jan 2014 21:57:50 GMT

    [ https://issues.apache.org/jira/browse/CB-5694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13862668#comment-13862668
] 

Clark Pan commented on CB-5694:
-------------------------------

The same code run on the default android browser behaves as expected. That being said, i have
not tested a vanilla WebView.

To refute what was said about manipulating window.location.href, that is not the point of
location.replace. Location.replace is used when you want to replace the last page on the history
stack instead of pushing a new page onto the stack; using window.location.href will push another
page onto the stack.

Providing a consistent implementation of this will remove a barrier for developing hybrid/web
apps. Most popular frameworks that have routing (Backbone, Angular, you name it), uses this
method.

> location.replace does not behave as expected
> --------------------------------------------
>
>                 Key: CB-5694
>                 URL: https://issues.apache.org/jira/browse/CB-5694
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>    Affects Versions: 3.1.0, 3.2.0, 3.3.0
>         Environment: Tested on Android 4.1.2 Sony Xperia T
> Android 4.2.2 Samsung Galaxy S4
>            Reporter: Clark Pan
>            Assignee: Joe Bowser
>            Priority: Minor
>
> Using location.replace should replace the current page with the specified page. This
is not the case when using hash values.
> Steps to reproduce:
> 1. Create new cordova project
> 2. Add android
> 3. Run code similar to this after device ready
> {code:javascript}
> window.location.hash = '#foo';
> expect(window.location.hash).toBe('#foo');
> window.location.replace('#bar');
> expect(window.location.hash).toBe('#bar');
> window.location.hash = '#foobar';
> expect(window.location.hash).toBe('#foobar');
> window.history.back();
> setTimeout(function(){
>     expect(window.location.hash).toBe('#bar');
> }, 0);
> {code}
> Expected results:
> All the expectations to be true
> Actual results:
> the last hash value will be '#foo'
> Workaround:
> One could shim location and history and provide their own implementation of history state.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message