Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   poup up в iframe (https://javascript.ru/forum/misc/55487-poup-up-v-iframe.html)

qwe88 30.04.2015 00:20

poup up в iframe
 
Добрый день!
Есть некий iframe на странице. При нажатии на ссылку,выскакивает poup up окно. Но там происходит подсчет окна iframe, а не монитора (что бы poup up был по центру.
Скажите, пожалуйста, как сделать так, что всплывающее окно было по центру экрана монитора, а не экрана iframe-а
Вот сам код:
function open_popup(box) {
  $("#background").show() 
  $(box).centered_popup(); 
  $(box).delay(100).show(1);


} 
 

function close_popup(box) { 
  $(box).hide(); 
  $("#background").delay(100).hide(1); 
} 
 
$(document).ready(function() { 
  
  $.fn.centered_popup = function() { 
    this.css('position', 'absolute');
    this.css('top', ($(window).height() - this.height()) / 2 + $(window).scrollTop() + 'px'); 
    this.css('left', ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + 'px'); 
  }

});

Deff 30.04.2015 10:25

Цитата:

Сообщение от qwe88
Есть некий iframe на странице

А фрейм на том же домене, что и главная ?
Или(если нет): можно ли поставить свой скрипт на главную помимо фрейма ?

qwe88 30.04.2015 10:28

Да, iframe на том же домене

Deff 30.04.2015 10:36

Цитата:

Сообщение от qwe88
Да, iframe на том же домене

Ну тогда самое простое написать poup up на главной и вызвать функцию открытия poup up на Главной из фрейма
window.top.имя_функции(аргументы)

qwe88 30.04.2015 10:49

Что-то не могу понять, как это реализовать.

Вот главная страница:
<iframe class="kartamin" id="fram" frameborder="0" width="1200" height="1150" border="0" scrolling="no" src="/qwe.html" name="I1" allowtransparency="true"></iframe>


Вот внутренняя (которая в iframe):
<script src="htp://code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
function open_popup(box) {
  $("#background").show() 
  $(box).centered_popup(); 
  $(box).delay(100).show(1);


} 
 

function close_popup(box) { 
  $(box).hide(); 
  $("#background").delay(100).hide(1); 
} 
 
$(document).ready(function() { 
  
  $.fn.centered_popup = function() { 
    this.css('position', 'absolute');
    this.css('top', ($(window).height() - this.height()) / 2 + $(window).scrollTop() + 'px'); 
    this.css('left', ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + 'px'); 
  }

});
</script>
<div class="yarl1a" onclick="open_popup('#modal_window');">Девяткино</div>

Deff 30.04.2015 11:32

Цитата:

Сообщение от qwe88
<iframe class="kartamin" id="fram" frameborder="0" width="1200" height="1150" border="0" scrolling="no" src="/qwe.html" name="I1" allowtransparency="true"></iframe>

Поставьте скрипт -функцию для pop up сразу за фреймом на главной и вызывайте функцию из фрейма
для примера поставьте за фреймом:
<script>
function topAlert(a) {alert(a)}
</script>

И вызов из фрейма
window.top.topAlert('Привет c Главной!')

=============
Там же на главной будете и определять своей функией и смещение для pop up и open и glose (вызовами по ссылке внутри фрейма передаете управления-вызываете функции в топ-окне

qwe88 30.04.2015 11:39

Супер!
Спасибо огромное!


Часовой пояс GMT +3, время: 02:11.