Доступ к событию прокрутки родительского окна из дочернего элемента внутри iframe с помощью Jquery - PullRequest
1 голос
/ 26 марта 2012

У меня есть небольшой скрипт javascript / jquery на странице page1 (страница aspx), который прокручивает iframe, загруженный страницей page2, чтобы он оставался с вами на странице при прокрутке вверх и вниз page1.Однако, когда я загружаю page1 в iframe для другой родительской страницы, эффект прокрутки не работает.

Я пытался использовать window.parent в вызовах, но сценарий по-прежнему не активируется и не прокручиваетpage2 iframe при прокрутке page1 внутри iframe родительской страницы (еще одна страница aspx).Я надеюсь, что в этом есть смысл.

Вот скрипт, который я пробовал:

<script type="text/javascript">
        $(window.parent.document).ready(function () {
            var $scrollingDiv = $("#IframeDir");

            $(window.parent).scroll(function () {
                $scrollingDiv
                .stop()
                .animate({ "marginTop": ($(window.parent).scrollTop() + -10) + "px" }, "slow");

            });
        });


    </script>

Это работает, если я просто загружаю page1 в его собственную вкладку или окно, но если я загружаю page1 внутри iframe на родительскую страницу, кажется, он не видит событие прокрутки родительской страницы.

Заранее спасибо за любые предложения!Erin

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

См. Этот ответ Запуск JQuery в контексте другого фрейма

Вы должны передать контекст для поиска в (родительский документ)

// Untested
$(window.parent.document, window.parent.document).ready(function () {
    var $scrollingDiv = $("#IframeDir");

    $(window.parent, window.parent.document).scroll(function () {
        $scrollingDiv
        .stop()
        .animate({ "marginTop": ($(window.parent, window.parent.document).scrollTop() + -10) + "px" }, "slow");

    });
});
1 голос
/ 16 ноября 2013

Я также хотел плавающий div в iframe и Rantul, этот код работал для меня!

$(parent.window).scroll(function() {
   //parent document scroll functions go here
});
0 голосов
/ 28 марта 2012

Я не думаю, что вы можете позвонить $(window.parent).scroll() из $(document).ready() или в этом случае $(window.parent.document).ready(). В этом отношении я не думаю, что $(window.parent).scroll() будет работать вообще, я думаю, что это должно быть $(parent.window).scroll()

Вот как я это делал раньше:

$(document).ready(function() {
//document ready functions go here
});

$(parent.window).scroll(function() {
//parent document scroll functions go here
});

И чтобы ответить на ваш другой вопрос, я полагаю, что для работы этого также необходим jQuery на родительской странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...