Vaadin 24 iframe не прокручивается до фрагментации при первой загрузкеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Vaadin 24 iframe не прокручивается до фрагментации при первой загрузке

Сообщение Anonymous »

Я пытаюсь прокрутить элемент фрагмента при первой загрузке iframe (поведение браузера по умолчанию, когда в URL-адресе есть #), однако пока безуспешно.
В URL после ' есть идентификатор элемента», например: mydomain.com/test#h1_id. Я убедился, что конкретный элемент с h1_id существует в HTML, который загружается в iframe.
Способ загрузки iframe выглядит следующим образом: пользователь нажимает 2c).Iframe выглядит следующим образом: .
При загрузке он не прокручивается до фрагмент сразу, но как только он загружается и пользователь нажимает еще раз, он прокручивается.
Минимальный пример:
Маршрут, на котором присутствуют элемент и :

Код: Выделить всё

@Route("/foo")
public class MyLayout extends VerticalLayout {
public MyLayout() {
val anch = new Anchor();
anch.setTarget("iframename");
anch.setHref("/goo#h1_id"); // or any other url, in my case it is localhost (same origin, or browsers will show warning/error)
anch.setText("CLICK ME");
val iframe = new IFrame();
iframe.setName("iframename");
iframe.setId("iframename");
iframe.setSizeFull();
add(iframe);
add(anch);
}
}
Маршрут для отображения в iframe:

Код: Выделить всё

@Route("/goo")
public class Hello extends VerticalLayout {
public Hello() {
// long paragraph so it actually takes some height
val text = new Span(" Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Pellentesque molestie ultricies lectus ac rhoncus. Quisque auctor venenatis metus," +
" et tincidunt elit scelerisque in. Donec a magna eget arcu euismod iaculis. Integer " +
"eget finibus turpis, sed faucibus ligula. Aliquam sed sodales ligula. Aliquam erat volutpa" +
"t. In sed aliquam elit. Orci varius natoque penatibus et magnis dis parturient montes, nasc" +
"etur ridiculus mus. Donec tincidunt est aliquet ullamcorper mollis. Integer id sem eu libero " +
"euismod facilisis nec id turpis. Nullam ullamcorper feugiat fringilla. Nullam ultricies volutpat d" +
"ui, eu varius dui condimentum eu. Curabitur in lectus faucibus, pellentesque risus et, semper dui.");
text.addClassName(LumoUtility.FontSize.XXLARGE);
val scrollElement = new Span("Element to scroll to");
scrollElement.setId("h1_id");

add(text, scrollElement);
}
}
Поведение, которого я хочу достичь (прокрутка при первой загрузке iframe), способ, который я описал выше, работает в Vaadin 8, однако когда мы перешли на 24, он не работает. Есть ли способы заставить это работать? Я пробовал прокручивать его программно в конструкторе маршрута, в AfterNavigation или в BeforeEnter и использовать перехватчики загрузки JavaScript, однако это не помогло.

Подробнее здесь: https://stackoverflow.com/questions/790 ... first-load
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»