Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Скроллинг внутри iframe


Автор: Apelsin 9.10.2011, 21:52
Ребят, не могу найти сам, есть ли решение.
на странице есть iframe. Над iframe разместил:
<-Назад                             Вперед->
и в <input type = "hidden" id = "anchors"> - список якорей в этом iframe

Когда давлю Назад или Вперед, происходит это:
Код

var iframe = document.getElementById('didacticfileContent_'+DIDACTICCODE);
iframe.src = iframe.src.split('#')[0] +"#"+ anchor; // нужный анкор выбираю заранее


Опытным путем выяснил что заново документ не загружается, но вот сам iframe прыгает вверх ОСНОВНОЙ страницы, а мне надо чтобы позиционирование по анкору было только внутри iframe. Как этого добиться? Еще раз: Происходит прыжок внутри iframe на нужный якорь, но и САМ iframe тоже прыгает вверх страницы - согласитесь ,неудобно. Даже Навигация Вперед - назад выходит из поля видимости...

Автор: Apelsin 9.10.2011, 22:09
Задача решена следующим способом.
Перед установкой якоря в iframe запоминаю положение скролла в главном окне:
Код

var startScroll = window.scrollY;

Затем устанавливаю якорь в iframe (положение в iframe меняется на нужное мне, но и сам iframe прыгает вверх).
Затем устанавливаю значение скролла основного окна на исходное:
Код

scroll(0, startScroll);


Предполагаемых заметных киданий на странице нет.

Добавлено через 4 минуты и 47 секунд
Хотя нет, в IE страница противно дергается на мгновение (иногда не дергается)... 
Еще появилась мысль попробовать запретить скроллинг страницы, установить якорь в iframe, разрешить скроллинг. Но не могу найти как это сделать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)