Javascript调整Firefox弹出窗口的大小?

时间:2011-05-25 12:23:51

标签: javascript jquery firefox popup

我只是在学习Javascript和jQuery,但我是一个HTML'r试图迈出下一步..

我正在尝试将内容放入一个表格中,这个表格可以是任何大小的(这是一个新闻网站)。我检查大小,然后相应调整弹出窗口的大小;虽然窗口不完全正确,但它在Firefox中甚至没有调整大小。

使用通用链接弹出一个基本窗口:

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

我将它指向一个默认页面,其中cms将所有内容放入表格(id =“top”)。它有一个默认宽度=“1”来强制约束,然后让内容展开表来设置实际大小。然后检查表大小以查看document.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 个答案:

答案 0 :(得分:1)

我强烈建议您使用div弹出窗口替换弹出窗口。您将遇到像Firefox一样的问题,以及完全阻止它的浏览器。假设您已包含jqueryui,并且您正在从同一域中加载此内容:

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

答案 1 :(得分:0)

尝试这样的事情;

<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)
 })
});

这样你就不需要调整窗口大小,只需要初始设置大小。

答案 2 :(得分:0)

Firefox首选用户允许/禁止使用Javascript调整窗口大小。它位于工具 - 选项 - 内容 - 启用Javascript - &gt; [高级]。

我不确定默认情况下是否禁用了调整大小,但您可能需要先检查自己的Firefox安装。

如果它在默认情况下被禁用,那么遗憾的是,在打开窗口后,您无需执行任何操作来调整窗口大小。一个丑陋的解决方法是使用具有首选大小的window.open()再次打开自己。

答案 3 :(得分:0)

为什么不通过ajax请求获取内容并将其显示在当前内容之上的div中?