[ 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 {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. > 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)