2017-02-21 3 views
1

팝업을 열고 팝업 페이지의 특정 요소를 통해 크기를 조정할 수있는 몇 가지 코드가 있습니다. 다음 코드는 Chrome과 Firefox에서는 잘 작동하지만 IE에서는 제대로 작동하지 않습니다.IE에서 window.onload가 실행되지 않는 이유

var newWin ; 
 
    function openWindow(id) { 
 
     newWin = window.open(url,config,setting); 
 
     newWin.onload= function() {      
 
       newWin.resizeTo(newWin.document.getElementById("certainID").offsetWidth,100); 
 
     };

는 IE10에서 팝업이 올 것이다하지만 window.load 이벤트가 화재 않을 것입니다. newWin. $ (document) .ready,하지만 유효하지 않은 것 같습니다.

의견이 있으십니까?

+0

시도하십시오. window.onload = function() {// 코드} – locateganesh

답변

1

로 교체 쓰기, 다음 팝업 창 크기를 조정

var newWin ; 
 
    function openWindow(id) { 
 
     newWin = window.open(url,config,setting); 
 
     var resizePopup = function() { 
 
       newWin.resizeTo(newWin.document.getElementById("certainID").offsetWidth,100); 
 
       newWin.focus(); 
 
      }; 
 
     var tryResize = function(){ 
 
       if(newWin.document.getElementById("certainID")==null){ 
 
        setTimeout(function(){tryResize();},500); 
 
       } 
 
       else{ 
 
        resizePopup(); 
 
       } 
 
      } 
 
     tryResize(); 
 
     };

0

IE의 오래된 문제입니다. 최상의 솔루션 중 하나는 new을 추가하는 것입니다.

은 일반적으로 우리가

window.onload=function() { alert('hello');}; 

마지막으로 내가 팝업의 요소가 잘 생성 될 때마다 확인 에서는 setTimeout를 통해이 문제를 해결

window.onload=new function() { alert('hello');}; 
+0

예,이 방법을 사용하면 _alert_가 확실하게 팝업됩니다. 그러나 이런 식으로 * IE *와 chrome은 모두 _newWin.document.getElementById ("certainID") _에 대해 * null *을 반환합니다. _new function() _이 window.floading을 발생시킬 것임을 알았습니다. popup의 요소가 잘 생성되지 않도록 예상보다 많이 * 일찍 시작했습니다. 마지막으로 _Answer_에 작성된 해결 방법을 통해이 문제를 해결합니다. – cherishty

관련 문제