У нас есть приложение Angular 7, которое размещается внутри iframe на всех веб-сайтах наших клиентов. Вся навигация внутри приложения осуществляется с помощью этого вспомогательного класса:
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
*,в главном окне). В Chrome и Firefox все работает нормально, но в Microsoft Edge history.state
равно нулю.
Мы уверены, что что-то в нашем iframe вызывает это, так как удаление iframe решает проблему. Мы также console.log
отредактировали объект истории через заданные интервалы, и мы видим, что в какой-то момент во время инициализации нашего приложения поле state
становится пустым.
Просматривая документы Angular Router, я ничего не смог найтисвязаны, есть идеи?
Спасибо