Открыть div из iframe в верхней части главной страницы (заполняет весь экран)

Я создал popup/lightbox, используя javascript и css, который состоит из div поверх увядшего div, который покрывает весь экран. Когда пользователь нажимает на объявление, которое находится в iframe, появляется это всплывающее окно / лайтбокс, который должен занимать весь экран.

Моя проблема в том, что когда объявление, на которое вы нажимаете, находится в фрейме на другой странице, я не могу понять, как это сделать. Он открывается только в том же контейнере, что и объявление, на которое вы нажимаете, и не охватывает весь экран.

В основном HTML выглядит примерно так:

<div id="light" style="display:none;">
    <div id="wrap" style="display:none;">
        <section id="container" style="background-color:#fff;">
          <div id="ad_splash">
            <figure class="ftn">
                <div class="mno"></div>
                <a href="destinationurl" target="_top"><img src="splash.png"></a>
          </div>
        </section>
    </div>
</div>

<div id="fade" onclick="lightbox_close();" style="display: none;">
</div>

И JS:

<script type="text/javascript">     
    var wsLight = document.getElementById("light");
    var wsFade = document.getElementById("fade");

    window.top.document.body.appendChild(wsLight);
    window.top.document.body.appendChild(wsFade);

    function lightbox_open(){
        window.scrollTo(0,0);
        wsLight.style.display="block";
        wsFade.style.display="block";   
    }
    function lightbox_close(){
        wsLight.style.display="none";
        wsFade.style.display="none";    
    }
</script>

Пробовал с основами, такими как установка z-index, target=_top и т. Д., Но не повезло, очевидно. Я не знаю, что и где поместить фрагмент кода, функцию или подобное, чтобы он добавлялся в тело главной страницы, если это в iframe. Думал о том, чтобы иметь что-то вроде window.top.document.body.appendChild(lightbox); но я не могу заставить его работать. Я очень новичок и не нашел ничего, что бы четко объясняло, что я делаю неправильно или что я мог сделать вместо этого. Я нашел здесь кого-то с подобной проблемой, но у него не было ответов с 2009 года... Я был бы рад любым отзывам на самом деле.

0 ответов

Другие вопросы по тегам