Edge - навигация по угловому iframe устанавливает значение history.state в null - PullRequest
5 голосов
/ 28 октября 2019

У нас есть приложение 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, я ничего не смог найтисвязаны, есть идеи?

Спасибо

1 Ответ

2 голосов
/ 30 октября 2019

Я не уверен, что именно вызывает эту ошибку, но я думаю, что вы можете проверить некоторые параметры ExtraOptions в RouterModule.forRoot ().

interface ExtraOptions {
    useHash?: boolean;
    initialNavigation?: InitialNavigation;

}

https://angular.io/api/router/ExtraOptions

...