Прокрутка iframe с родительской страницы

Я создал две веб-страницы, одна содержит другую в iframe. Я хотел бы прокрутить встроенную страницу с родительской страницы через javascript.

То, что я пробовал до сих пор:

  • $('#go').scrollTop(200);

  • $('.footer').scrollTop(200);

  • var frame = document.getElementById('go');
    frame.contentWindow.scrollTo(0, 200);

Ни один из них не работал

родительская веб-страница html:

<html>
<body>
.
.
.
<div class="footer">
        <iframe id="go" src="go.html"></iframe>
    </div>
     </body>
</html>

Оба этих веб-страницы являются локальными файлами на компьютере, и я использую Google chrome с флагом "--allow-file-access-from-files".

Как прокрутить iframe до определенной позиции?

Ответ 1

Это работает:

document.getElementById("go").contentWindow.setTimeout("this.scrollTo(0, 200);",1);

Update. Doh. Работает только в IE, но я думаю, что там что-то есть.

Обновление 2 Это работает повсеместно:

document.getElementById("go").onload = function () { this.contentWindow.scrollTo(0, 200) };

Вам нужно подождать, пока содержимое iframe закончит загрузку для scrollTo для работы.

Ответ 2

Вы можете использовать window.postMessage, чтобы отправить сообщение из родительского фрейма в iframe, указав ему прокрутку. Это приведет к настройке postMessage script в родительском фрейме и receiveMessage script в iframe. Это код receiveMessage, который фактически прокручивает iframe.

Я успешно использовал этот polyfill: http://benalman.com/projects/jquery-postmessage-plugin/