У меня есть приложение Angular 5 (форма приложения), которое встроено в Iframe на нескольких сайтах.Когда пользователь выбирает «Далее», чтобы перейти к следующему разделу формы, мне нужно, чтобы страница прокрутилась до самого верха.
Попытки вроде:
window.scrollTo(0,0);
document.body.scrollTo(0,0);
window.parent.scrollTo(0,0);
document.getElementById("myid").scrollIntoView();
document.querySelector('body').scrollIntoView(); => What I'm currently using
работают нормальново всех браузерах, кроме рабочего стола Safari.
Похоже, что Safari не соблюдает мой код изнутри iframe для прокрутки назад до вершины iframe или parent (я знаю о междоменных проблемах при попытке доступа к родительскому фрейму).До сих пор я тестировал в Safari 12 на MacOS Mojave через BrowserStack.
Я просто хочу знать, как заставить это работать именно в SAFARI DESKTOP, не испытывая проблем с другими распространенными браузерами, включая Internet Explorer 11.
В настоящее время я вызываю функцию прокрутки вверх, когда инициализируется следующий раздел формы my (пользователь выбирает «Next», и отображается следующий компонент / раздел формы).У меня это прокручивается обратно к началу страницы примерно так:
Пример.
ngOnInit() {
document.querySelector('body').scrollTo(0,0);
...
}
Я думаю, что с Safari мне может понадобиться использовать другой хук жизненного цикла, например, ngAfterViewInit ().Это всего лишь предположение, почему я не могу понять, почему Safari, похоже, вообще не прокручивается до верхней части страницы.Краткое замечание: это не проблема для мобильного Safari, поскольку у нас нет мобильной версии, встроенной в Iframe, только настольный Safari.