Javascript изменение размера всплывающего окна Firefox?

Я просто изучаю Javascript и jQuery, но я HTML-r пытаюсь сделать следующий шаг..

Я пытаюсь поместить контент в таблицу, которая может быть любого размера (это для новостного сайта). Я проверяю размер, а затем соответственно изменяю размер всплывающего окна; хотя окно не совсем правильно, оно работает, но в Firefox оно даже не изменяется.

используя общую ссылку для pop-открыть основное окно:

<a onclick="window.open('http://site.local/popup/','popup','width=1,height=1')">popup</a> 

Я указываю на страницу по умолчанию cms помещает все содержимое в таблицу (id= "top"). Он имеет ширину по умолчанию= "1", чтобы заставить ограничение, а затем позволить содержимому развернуть таблицу, чтобы установить реальный размер. Затем я проверяю размер таблицы, чтобы увидеть и изменить размер окна в документе.ready():

<script type="text/javascript">
 <!--
 $(document).ready(function() {
  var divh = document.getElementById('top').offsetHeight;
  var divw = document.getElementById('top').offsetWidth;

  //Test size
  //alert("Table: width= " + divw + "px / height= " + divh +"px");

  //Resize
  window.resizeTo(divw,divh);
  }    
 -->
</script>

мне нужно иметь возможность изменять размер окна уже открыты в Firefox.

все размеры окон (кроме Firefox) выключены, но я могу их заполнить - немного больше, чем отсечка. Firefox, к сожалению, генерирует крошечное окно 180w x 249h и никогда не изменяет размер.

Я искал здесь безуспешно-большинство предлагают редактировать настройки в firefox, чего я явно не могу ожидать от пользователей.

какие идеи?

4 ответов


Firefox поставляется с предпочтением для пользователя, чтобы разрешить / запретить изменение размера окна с помощью Javascript. Это в инструментах-параметры-содержимое-включить Javascript - > [дополнительно].

Я не уверен, что изменение размера отключено по умолчанию, но вы можете сначала проверить свою собственную установку Firefox.

если он отключен по умолчанию, то, к сожалению, вы ничего не можете сделать, чтобы изменить размер окна после его открытия. Уродливое решение будет открыта после себя снова используя window.open() с предпочтительным размером, хотя.


Я настоятельно рекомендую заменить ваше всплывающее окно всплывающим окном div. Вы столкнетесь с проблемами, как у вас с Firefox, и браузеры блокируют его в целом. Предполагая, что у вас есть jQueryUI, и вы загружаете этот контент из того же домена:

$('#container').load('/popup',function() {
     var table = $('#container #top');
    $('#container').dialog({height:table.height(), width: table.width()});
});

попробуйте что-то вроде этого;

<a class='poptrigger'>pop</a>

$(function(){
 var w = $("#top").outerWidth();
 var h = $("#top").outerHeight();
 $('.poptrigger').click(function{
  window.open('http://site.local/popup/','popup','width='+w+',height='+h)
 })
});

таким образом, вам не нужно изменять размер окна, а просто установить размер изначально.


Почему бы не получить контент с запросом ajax и не отобразить его в div над текущим контентом?