IE8 window.opener问题

时间:2010-05-17 16:17:37

标签: javascript jquery

IE8有问题......

我有一个onclick触发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);
}

现在如果你第二次点击原来的showImageBrowser()按钮,IE会调出窗口,但这次会冻结几秒钟,然后你会收到警告“无法打开图像浏览器,请禁用弹出窗口拦截器。“

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

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

您可以尝试每次随机(不同)替换newwin,每次拨打showImageBrowser()时都会打开一个新窗口。