2011-04-28 5 views
1

현재 윈도우를 닫은 다음 런타임에 새 윈도우를 다시 열어야하는 dotnet 어플리케이션이 있습니다. 나는 그것을 위해 자바 스크립트를 사용했다. 코드는 다음과 같습니다 :window.open()이 IE6 및 IE7에서 작동하지 않습니다.

function OpenNewWindow() { 
    if (ConfirmStartTest()) { 
     closeWindow(); 

window.open("OnlineTestFrame.aspx", "_Parent", "model=yes,dailog=no,top=0,height=screen.height,width=screen.width,status=no,toolbar=no,menubar=no,location=no,zoominherit =0,resizable =no,scrollbars=yes,dependent=no,directories=no,taskbar=no,fullscreen=yes"); 

     self.focus(); 

    } 

} 

//taking the confirmation for starting test 
function ConfirmStartTest() { 
    var result = confirm("Do you want to start the test now?"); 
    return result; 
} 

//function to close the current window 
function closeWindow() { 

    //var browserName = navigator.appName; 

    //var browserVer = parseInt(navigator.appVersion); 

    var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false; 

    if (ie7) 

      {  

      //This method is required to close a window without any prompt for IE7 
      window.open('','_parent',''); 
      window.close(); 

      } 

    else 

      { 

      //This method is required to close a window without any prompt for IE6 

      this.focus(); 

      self.opener = this; 

      self.close(); 

      } 
} 

이제이 응용 프로그램을 IE7과 IE6에서 실행할 때 실행되지 않습니다. 그러나 IE8에서는 잘 돌아갑니다.

이 코드는 이전의 모든 IE6 n IE7에서 정상적으로 작동했습니다. 갑자기 오류가 발생합니다. 새 창을 열 수 없으며 갑자기 b/w에서 멈출 수 없습니다.

아무쪼록이 문제와 관련하여 궁금한 점이 있으면 알려 주시기 바랍니다.

+0

갑자기 작동이 멈췄다 고하는데, 그 전에 어떤 변경을 했습니까? –

+0

또한 "self"변수의 초기화가 보이지 않습니까? 아니면 누락 되었습니까? 아니면 스 니펫 외부에 있습니까? –

+0

@Niklas - https://developer.mozilla.org/en/window.self – epascarello

답변

0

창을 닫고 실행 후 아무 것도 예상하지 않는 것과 같은 것은 없습니다. 코드의

흐름

  1. 윈도우 닫기라는 기능
  2. 열기 창 < - 나는 경우 실행할 수있는 부모가 닫힙니다?
  3. 초점 창

[호언 장담] 당신이가 더 크롬이 없습니다 있도록 창을 자신의 팝업을 사용하는 사용자를 강제로 여기에서하려고하는 것은 아주 나쁜 사용자 경험이 . 사용자 기록을 삭제합니다. 내 브라우저를 혼자 둡니다! 창문을 닫을 때 해킹 된 물건을 만들어야하는 이유가 있습니다. 브라우저는 그렇게하지 못하게합니다. [/ rant]

+0

-1 답변으로 질문과 관련이 없습니다. –

+0

@Sean 내 호언 장담하기 전에. 흐름을 봐. 창을 열어 창을 닫으십시오. 창이 닫히면 어떻게 더 이상 JavaScript를 실행할 수 있습니까? 문을 닫은 후에 걸어 나가는 것과 같습니다. 작동하지 않습니다. – epascarello

+0

내 문장을 이해하지 못하는 사람들에게 더 분명하도록 편집했습니다. – epascarello

0

이것은 self.opener의 할당 때문입니다.

12/04 Microsoft는 Windows Update를 통해 Security Bulletin MS11-018을 시작하여 메모리와 관련된 몇 가지 취약점을 마감했습니다.이 중 하나는 더 이상 할당 할 수없는 opener 속성에 영향을줍니다.

+0

하지만, 오프너 속성은 IE7이 아닌 경우에만 그림에 들어옵니다. 제 질문은 IE7에서 작동하지 않는다는 것입니다. 그리고 둘째, IE7, IE6, IE8 모두 잘 작동했지만 현재 IE8에서만 작동합니다. 그리고, 나는 d 코드에서 어떤 chages도 만들지 않습니다. 그것은 동일합니다. 인터넷 익스플로러에서 몇 가지 변경을해야 할 가능성이있을 수 있습니까? – Rashi

+0

그렇다면 @ epascarello의 대답은 유망 해 보입니다.하지만 제 대답은 IE6의 경우에 맞을 가능성이 큽니다. –

관련 문제