Я здесь новенький ... надеюсь, что все делаю правильно ;-D
Я нашел несколько тем с похожими проблемами, но они не выглядят так, как будто хотят достичь того, чего хочу достичь я.
У меня есть сайт с длинной областью контента, на сайте есть полосы прокрутки. Где-то внутри этой области содержимого есть iframe
. Этот iframe
реализует сайт с полной высотой (доска поддержки) и изменяет размер iframe
при изменении содержимого height
, поэтому iframe
не имеет полос прокрутки. Теперь я хочу: когда я открываю веб-сайт с помощью ie http://www.mywebsite.com/#new
, я хочу, чтобы страница прокручивалась вниз до iframe
, но не только до начала iframe, но и до положения, в котором размещен якорь. внутри этого iframe
.
Таким образом, сам iframe
не нужно прокручивать (это всегда 100% высота), но родительский фрейм должен быть прокручен до положения, в котором - внутри iframe
- размещается якорь.
Я действительно не знаю, как это решить. Добавление привязки к URL-адресу iframe не помогает, а также просто добавление привязки к URL-адресу веб-сайта не работает. Я уверен, что мне нужно реализовать что-то с помощью javascript или аналогичного, но не знаю, как! Я могу изменить код обоих - веб-сайта внутри iframe и родительского сайта!
// РЕДАКТИРОВАТЬ
О, я забыл ... Я не могу сделать это с помощью onClick-Action или атрибута ссылки (это то, что должно быть решением в соответствующем сообщении), потому что это не прыжок внутри той же страницы. Страница перезагружается и должна перейти к привязке :-D Так что она должна работать, когда я ввожу URL самостоятельно ...
Надеюсь, вы понимаете, что мне нужно!
// EDIT2 Возможные рамки:
- Главная страница - это блог на wordpress, поэтому можно использовать JQuery !
- Страница iframe - это простой машинный форум (SMF) - я думаю, только родной JS здесь!
1 ответ
Вот ответ, который направит вас «на правильный путь».
Предполагая, что ваш iFrame всегда находится в одной и той же позиции на вашей главной странице, вам нужно прокрутить главную страницу до этой точки: координата y iframe + координата привязки внутри iFrame.
Я буду называть вас якорем: <a name="anchor1">Here</a>
и iFrame: <iframe id ="myiFrame" ...
Чтобы получить позицию iframe на странице, вы можете использовать $("#myiFrame").position().top
и позицию привязки внутри iFrame с помощью $("#myiFrame").contents().find('a[name=anchor]').position().top
.
Итак, ваш сценарий может выглядеть так:
var y = $("#myiFrame").position().top + $("#myiFrame").contents().find('a[name=anchor]').position().top;
$(window).scrollTop(y)
jQuery(window).load(function() { id=window.location.hash.slice(1).substr(window.location.hash.slice(1).indexOf('#')+1); if(jQuery("#iframeforum").contents().find('a[id='+id+']').length) { var y = jQuery("#iframeforum").offset().top + jQuery("#iframeforum").contents().find('a[id='+id+']').offset().top - jQuery('#top').height(); jQuery(window).scrollTop(y) } });
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.