2014-10-06 66 views
0

我试图在访问我的角度应用程序时尽快重写用户历史记录的一小部分。在不改变页面角度的情况下将历史记录项添加到html浏览器历史记录

目前我正在尝试将应用程序加载后的最后一个历史记录项目更改为某个页面,但不仅仅是更改历史记录,当前页面/ URL也会更改。

在我app.js,我定义的角度我的路我也有一个.run

history.pushState({}, 'Restaurants List', document.URL.match(/.+#\//).toString() + 'orders/restaurants') 

这个瞬间将我的网址与预期目标更改为新的历史记录条目。

我也试过使用replaceState没有任何成功。

我想到的解决方案是首先更改历史记录,然后重定向用户,但工作正常,但我想避免额外的开销。

有没有什么办法可以添加到历史记录而不去它,这样如果用户点击回到不同的页面?

+0

我不确定它可能在一个简单的命令行中。你需要做的是捕获$ rootScope。$ on('$ stateChangeSuccess')事件,并在确定用户返回时更改此函数内部的根。 – benek 2014-10-07 10:34:10

+0

嗯,但那是依赖于用户在我的网页上第一个地方,我处于主要网站重定向到角度应用程序的情况,我想确保他们点击时他们会重定向到角度页面 – MikaAK 2014-10-07 17:09:10

+0

刚刚测试过:当您在导航器上点击“返回” ,$ rootScope。$ on('$ stateChangeStart'被激发,即使你是你的先前的URL是一个“非角度”页面 – benek 2014-10-08 07:20:26

回答

-2

据我所知,你不能从网页上篡改人的历史。

+0

html5 history api。 – MikaAK 2014-10-06 23:28:02