代码之家  ›  专栏  ›  技术社区  ›  fire

IE8窗口打开器问题

  •  0
  • fire  · 技术社区  · 14 年前

    IE8有问题…

    我有一个按钮,一键触发 showImageBrowser() 功能。

    function showImageBrowser(params) {
    var open = window.open('http://localhost/admin/browse?'+params,'newwin','toolbar=0,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=1,width=950,height=500');
        if (!open) {
            alert('Could not open the image browser, please disable your popup blocker.');
        }
    }
    

    现在,在图像浏览器中,单击图像时,它会调用此函数:

    function selectFile(url, el) {
        window.opener.replaceImage('Test_Image', url);
        window.close();
    }
    

    哪个叫 replaceImage() 在父窗口中的函数,如预期的那样。

    这是代码:

    function replaceImage(el, url) {
      $('#'+el).html('<a href="'+url+'" target="_blank" class="image">'+basename(url)+'</a>');
      $("input[name='"+el+"']").val(url);
    }
    

    现在如果你点击原始的 显示图像浏览器() 按钮第二次,即会弹出窗口,但这一次它冻结了几秒钟,然后您会得到提示“无法打开图像浏览器,请禁用弹出窗口拦截器。”

    这在火狐(显然)中很好,但在IE中不行。我甚至没有在IE7/6中尝试过,因为如果它在8中不起作用,那么我知道我会有问题。

    有什么建议吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Pekka    14 年前

    我不知道这背后的背景,但看起来我不会 window.open 进入一个现有的窗口-可能出于安全目的,我不知道。

    你可以试着换一下 newwin 每次都是随机的(不同的),每次你打电话都会打开一个新窗口 showImageBrowser() .