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] [Updated] (CB-5694) location.replace does not behave as expected
Date Mon, 30 Dec 2013 00:56:50 GMT

     [ https://issues.apache.org/jira/browse/CB-5694?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Clark Pan updated CB-5694:
--------------------------

    Description: 
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.

  was:
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
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);

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.


> 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
>
> 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