Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJS重定向到历史记录中不保存url_Javascript_Extjs_Extjs6 - Fatal编程技术网

Javascript ExtJS重定向到历史记录中不保存url

Javascript ExtJS重定向到历史记录中不保存url,javascript,extjs,extjs6,Javascript,Extjs,Extjs6,假设我有以下代码: ... routes: { 'someurl:{param}': { action: 'action', before: 'beforeaction' } }, ... beforeaction: function(param, action) { if (!param) { action.stop(); this.redirecTo('someurl:defaultparam');

假设我有以下代码:

...
routes: {
    'someurl:{param}': {
        action: 'action',
        before: 'beforeaction'
    }
},

...

beforeaction: function(param, action) {
    if (!param) {
        action.stop();
        this.redirecTo('someurl:defaultparam');
    }
    action.resume();
}
...
所以,当我打开
host/someurl
时,应用程序将我重定向到
host/someurl:defaultparam
。这部分很好用。 但我不能使用“后退”浏览器按钮返回到
host/someurl
之前的url,因为当我返回到host/someurl时,应用程序会再次将我重定向到
host/someurl:defaultparam
。我尝试将
重定向到
更改为

history.replaceState(..., host/#someurl:defaultparam);
history.go(0);
但每次重定向都会重新加载页面

那么,如何使用ExtJs重定向到并替换历史记录中的url呢

更新:我替换了
history.go(0)
on
this.redirectTo('someurl:defaultparam',true)。现在,当连续两次或更多次重定向到某个url时,我遇到了一个问题,查看和,它看起来像是
redirectTo()
管理
Ext.util.History
——它只是
window.location.hash
上的一层。不幸的是,由于后退按钮与
window.location
紧密耦合,因此没有一种干净的方法来完成您所需要的


在过去,我已经能够覆盖——它截取所有ExtJS路由,并可能使您能够在发生很多事情之前更改URL/哈希。不过,我不完全确定这是否有助于您的具体案例。

谢谢!我错过了,那个方法有第二个参数(强制)。我刚刚替换了历史记录。请转到(0)。重定向到(url,true)。