2010-05-17 2 views
0

возникают проблем с IE8 ...IE8 window.opener проблема

У меня есть кнопка, которая 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() функцию родительского окна, как expeted.

Это код:

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

Теперь, если вы нажмете на оригинальной showImageBrowser() кнопки во второй раз, IE появится окно, но на этот раз, когда он застывает в течение нескольких секунд, а затем вы получите alert "Не удалось открыть браузер изображений, отключите блокировщик всплывающих окон."

Это прекрасно работает в Firefox (очевидно), но не в IE. Я даже не пробовал его в IE7/6, потому что, если он не работает в 8, я знаю, что у меня будут проблемы.

Любые советы?

ответ

0

Я не знаю фона позади этого, но похоже, что IE не будет window.open в существующее окно - возможно, в целях безопасности, я не знаю.

Вы можете попробовать заменить newwin на что-то случайное (другое) каждый раз, что откроет новое окно каждый раз, когда вы позвоните showImageBrowser().

+0

Попробует, но это не имеет смысла, потому что окно закрывается в 'selectFile()' именно тогда, когда его снова открыли: -S – fire

+0

@fire ах, я неправильно прочитал эту часть. Это действительно странно. –