Edge - 在 Angular iframe 上导航将 history.state 设置为 null
Edge - navigating on Angular iframe sets history.state to null
我们有一个 Angular 7 应用程序,它位于我们所有客户网站的 iframe 中。应用程序内的所有导航都是通过此助手完成的 class:
import {Injectable} from '@angular/core';
import {Router} from "@angular/router";
@Injectable()
export class NavigationService {
constructor(private router: Router)
{}
private navigate(path, queryParams = {}){
this.router.navigate([path], {
queryParams: queryParams,
skipLocationChange: true
}));
}
}
我们的一个客户有一些 JS 代码(在他们的主站点上,而不是我们的 iframe)试图访问 history.state.persistent
*再次,在主 window 上)。在 Chrome 和 Firefox 上一切正常,但在 Microsoft Edge 上 history.state
为空。
我们确定是我们的 iframe 中的某些东西导致了它,因为删除 iframe 可以解决问题。我们还 console.log
以设定的时间间隔获取历史记录对象,我们看到在应用程序初始化期间的某个时刻,state
字段变为空。
查看 Angular 路由器文档我找不到任何相关的东西,有什么想法吗?
谢谢
我不确定到底是什么导致了这个错误,但我认为您可能想测试 RouterModule.forRoot() 上的一些 ExtraOptions 设置。
interface ExtraOptions {
useHash?: boolean;
initialNavigation?: InitialNavigation;
}
我们有一个 Angular 7 应用程序,它位于我们所有客户网站的 iframe 中。应用程序内的所有导航都是通过此助手完成的 class:
import {Injectable} from '@angular/core';
import {Router} from "@angular/router";
@Injectable()
export class NavigationService {
constructor(private router: Router)
{}
private navigate(path, queryParams = {}){
this.router.navigate([path], {
queryParams: queryParams,
skipLocationChange: true
}));
}
}
我们的一个客户有一些 JS 代码(在他们的主站点上,而不是我们的 iframe)试图访问 history.state.persistent
*再次,在主 window 上)。在 Chrome 和 Firefox 上一切正常,但在 Microsoft Edge 上 history.state
为空。
我们确定是我们的 iframe 中的某些东西导致了它,因为删除 iframe 可以解决问题。我们还 console.log
以设定的时间间隔获取历史记录对象,我们看到在应用程序初始化期间的某个时刻,state
字段变为空。
查看 Angular 路由器文档我找不到任何相关的东西,有什么想法吗?
谢谢
我不确定到底是什么导致了这个错误,但我认为您可能想测试 RouterModule.forRoot() 上的一些 ExtraOptions 设置。
interface ExtraOptions {
useHash?: boolean;
initialNavigation?: InitialNavigation;
}