2009-05-13 5 views
1

호출 될 때 창을 열어야하지만, null을 반환하는 함수를 개발했습니다. 원래의 JavaScript 함수에서 시작 창을 사용하면 작동합니다. 나는 원래 함수가 다른 함수에 컨트롤을 넘겨 준다고 가정하지만, 어떤 이유로이 함수가 작동하지 않는다.javascript open.window는 호출 된 함수에서 null을 반환합니다.

내 원래 함수는 기본적으로 새 JavaScript 파일을 호출하고 HTML 파일을로드하고 "준비"하면 이제는 문자열 형식의 HTML 파일로 window.open을 표시해야합니다.

order.prototype.printMe = function() { 
    order_resume.loadthis("myTestPage.html", "showData"); 

    // OPENING WINDOW HERE WORKS; but the the html file that is loaded 
    // in above line hasn't finsihed loading - so i need to show it form 
    // the function below once in "ready" state 

/*  child1 = window.open ("about:blank","_blank"); 
     child1.document.write(myDocument); 
     child1.document.close(); 
*/  
} 

그리고 여기가 원래의 함수에서 호출 내 기능입니다 :

function showResume() { 
    this.req = false; 

    reservaResumen.prototype.showData = function() { 
     if (this.req.readyState == 4) { 
      child1 = window.open("about:blank", "_blank"); /// THIS RETURNS NULL 
      child1.document.write("test"); 
      child1.document.close(); 
     } 
    } 

    reservaResumen.prototype.loadthis = function(url, myMethod) { 
     if (window.XMLHttpRequest && !(window.ActiveXObject)) { 
      try { 
       this.req = new XMLHttpRequest(); 
      } 
      catch (e) { 
       this.req = false; 
      } 
     } 
     else if (window.ActiveXObject) { 
      try { 
       this.req = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch (e) { 
       try { 
        this.req = new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
       catch (e) { 
        this.req = false; 
       } 
      } 
     } 
     if (this.req) { 
      var loader = this; 
      this.req.onreadystatechange = function() { 
       eval("loader." + myMethod + ".call(loader)") 
      } 
      this.req.open("GET", url, true); 
      this.req.send(""); 
     } 
    }​ 
+3

팝업 차단기가 활성화되어 있습니까? – epascarello

+0

아니요 - 원래 기능으로 열리기 때문에 ... –

+1

팝업 차단기 설정을 다시 확인하십시오. 브라우저는 사용자 상호 작용없이 창을 열지 않습니다. 또한, 사용자가 예를 들면. 클릭 동작이지만, (Ajax 요청과 같은 비동기 작업을 수행하는 등으로) 오래 기다리면 브라우저는 창을 차단하고 window.open에 대해 null을 반환합니다. – Rafael

답변

0

는 윈도우 7

I 64 비트에서 실행되는 32 비트 IE8 브라우저에이 문제를 속성 this discussion thread를 참조 단지 며칠 전에 이것에 부딪쳤다. 제 개발 기계가 다르게 행동하기 시작 했으므로, 개발 한 창을 포함하여 팝업 창이 더 이상 작동하지 않으며 시야가 고쳐지지 않습니다. 나는 관리자로서 IE를 시작해야만한다. 보호 모드를 해제해도이 문제는 해결되지 않습니다. 64 비트 브라우저에는이 문제가 없습니다.

왜 내 경우에 이것은 단지 몇 주 전에 시작되었습니다. 나는 말할 수 없습니다. 9/16에 보안 업데이트가있어서 행동의 변화를 일으켰습니다. 이것은 매우 이상합니다.

관련 문제