iframe и якорь
Ребят, не могу найти сам, есть ли решение.
на странице есть iframe. Над iframe разместил: <-Назад Вперед-> и в <input type = "hidden" id = "anchors"> - список якорей в этом iframe Когда давлю Назад или Вперед, происходит это: var iframe = document.getElementById('didacticfileContent_'+DIDACTICCODE); iframe.src = iframe.src.split('#')[0] +"#"+ anchor; // нужный анкор выбираю заранее Опытным путем выяснил что заново документ не загружается, но вот сам iframr прыгает вверх ОСНОВНОЙ страницы, а мне надо чтобы позиционирование по анкору было только внутри iframe. Как этого добиться? |
iframe.src = iframe.src.split('#')[0] +"#"+ anchor; мб надо только хеш менять, а не весь url... тогда будет имитация перехода по якорю делать так iframe.contentWindow.location.hash = anchor; |
Цитата:
|
http://www.w3schools.com/tags/tag_iframe.asp
вот тут говорят, что у iframe нет таких штук как вы написали :)... Можно ли как то блокировать прокрутку окна? Сделать так: Блокируем прокрутку окна -> Устанавливаем якорь в iframe -> разблокируем возможность прокрутки окна. |
Цитата:
<body></body> <script> alert( typeof document.body.appendChild( document.createElement('iframe') ).contentWindow ); </script> |
melky, спасибо за наглядный пример. Вы были правы. Я ожидал изменений в src (когда экспериментировал), изменяя hash как вы предложили. Сейчас попробывал - кидает на нужное место в фрейме, но и основная страница прыгает, как обычно :(.
Пытаюсь решить задачу экспериментами... |
что же, желаем удачи :)))
|
Попытка прокрутки iframe с помощью функции scrollIntoView увенчалась так же неудачей... Тот же эффект...
|
Утро вечера мудренее... В итоге всех подугов вылезло вот это:
iframe.contentWindow.window.scroll(0, iframe.contentWindow.document.getElementsByName(anchor)[0].offsetTop) И оно работает. |
Часовой пояс GMT +3, время: 21:50. |