0

Я пытаюсь открыть увеличенное изображение (BigImage.png), когда я нажимаю на меньшее изображение (SmallImage.gif), используя JavaScript. Вот код:JavaScript - проблема с блокировкой всплывающих окон

HTML

<td align="center"><a href="BigImage.png" onclick="OpenImage(this,event);" target="_blank"><img src="SmallImage.gif" width="196" height="131" border="0"></a></td> 

Javasript

function OpenImage(element,e) 
    { 


     e.preventDefault(); 

     var img = new Image(); 
     img.src = element.getAttribute("href"); 

     img.onload = function(){ 

     var left = (screen.width/2)-(img.width/2); 
     var top = (screen.height/2)-(img.height/2)-25; 

     var winWidth = img.width; 
     var winHeight = img.height; 

     var myWindow = window.open(img.src, "win1", 'height=' + winHeight + ', width=' + winWidth + ',left=' + left + ',top=' + top + ', location=0, toolbar=0, menubar=0, location=0, status=0, scrollbars=0, resizable=0'); 

     if(!myWindow) 
     { 
     alert("Please allow Popup Blocker to open window and click the image again."); 
     } 

    }; 
} 

Google Chrome и Internet Explorer вызова всплывающих окон, когда этот кусок кода выполняется. Я вызываю JS-код в результате прямого щелчка, который не должен вызывать блокировку всплывающих окон. Почему это происходит и как я могу исправить эту проблему?

С уважением.

+0

Вы отключили все блокирующие всплывающие окна? –

ответ

3

Причина, по которой он отключает блокировщик всплывающих окон, даже если вы открываете его в ответ на щелчок пользователя, заключается в том, что вы вызываете его из-под асинхронного img.onload и вызывают всплывающее блокирование. попробуйте вызвать window.open извне функции onload, должно работать.

+0

Большое спасибо. onLoad является асинхронным. :) –

Смежные вопросы