2012-09-30 7 views
0

팝업 창은 사용자가 별도의 창에서 문서 페이지를 열 수 있도록하기 위해 사용됩니다. 사용자가 다음 문서 페이지를 열려고하면 모든 이전 문서 페이지 창이 닫혀 야합니다.자바 스크립트를 사용하여 여러 팝업 창 닫기

기본적으로 여러 개의 팝업 창이 닫힙니다. 열린 팝업 윈도우의 레퍼런스를 저장하기 위해 변수에 팝업 윈도우 레퍼런스를 포함하는 배열을 저장했습니다. 그리고 변수의 값은 숨겨진 필드에 저장됩니다.

이제 popup = window.open('', '', sOptions);[object]을 반환하고이 [object]을 검색하면 개체가이 속성이나 메서드를 지원하지 않는다는 오류가 발생합니다. 내가 잘못 뭐하는 거지

var popupWin = new Array(); 

    function OnPopupClick(url,title,name) { 
     var popup = null; 
     var sOptions; 
     sOptions = 'status=yes,menubar=no,scrollbars=yes,resizable=yes,toolbar=no,titlebar=yes,location=0,directories=0'; 
     sOptions = sOptions + ',width=' + (screen.availWidth - screen.availWidth/2).toString(); 
     sOptions = sOptions + ',height=' + (screen.availHeight - 50).toString(); 
     sOptions = sOptions + ',screenX=0,screenY=0' 
     sOptions = sOptions + ',left=' + ((screen.availWidth/2) - 10).toString(); 
     sOptions = sOptions + ',top=0'; 
     html = '<html><head><title>'+ title + '</title></head><body style="margin: 0px 0; text-align:center; "><IMG src="' + url + '" BORDER=0 NAME=image height="' + (screen.availHeight - 50).toString() +'" width="' + ((screen.availWidth - screen.availWidth/2)-20).toString() +'" onload="window.resizeTo((document.image.width-(document.image.width-(screen.availWidth - screen.availWidth/2)))+10,((document.image.height*1.3)-(screen.availHeight - 50))+((screen.availHeight - 50)*3)";></body></html>'; 
     popup = window.open('', '', sOptions); 
     popup.document.open(); 
     popup.document.write(html); 
     popup.document.focus(); 
     popup.document.close(); 

     if(document.getElementById('<%= hidTitle.ClientID %>').value!=name){ 
      ClosePopupWin(document.getElementById('<%= hidWinRef.ClientID %>').value); 
     } 
     TrackPopupWinOpen(popup,name); 
    } 

    function TrackPopupWinOpen(winName,title) { 
     popupWin[popupWin.length] = winName; 
     var index = popupWin.length-1; 
     var val = popupWin.join(); 

     document.getElementById('<%= hidWinRef.ClientID %>').value=val; 
     document.getElementById('<%= hidTitle.ClientID %>').value=title; 
    } 

    function ClosePopupWin(retVal) { 
     popupWin[popupWin.length]=retVal.split(); 
     var openCount = popupWin.length; 
     for (i = 0; i < openCount; i++) { 
      popupWin[i].close(); 
     } 
    } 

:

나는 ASP/vb.net 사용하여 내 웹 응용 프로그램에서 다음과 같은 자바 스크립트를 개발 사용하고 있습니다?

제 3 자 도구는 사용할 수 없습니다. asp에서만 사용할 수있는 컨트롤을 사용할 수 있습니다.

답변

0

다른 접근 방법을 사용하는 것이 좋습니다. 팝업 창은 설명하는 것 이상의 모든 종류의 문제, 주로 adblocker 소프트웨어를 나타냅니다. 아직도, 이것을하는 훨씬 더 효율적인 방법이 있습니다. 이를 관리하려면 확장 또는 부동 div를 사용하십시오. 게시 한 자바 스크립트에 따라 비동기 적으로 검색되는 데이터가 없으므로 팝업이 필요 없습니다. 단순히 함수 또는 .NET 컨트롤을 사용하여 페이지 하단의 div에있는 이미지를 렌더링하는 경우 CSS 및 훨씬 가벼운 Javascript를 사용하여 절대 위치 지정 또는 고정 위치 지정을 사용하여 설정 및 해제를 전환 할 수 있습니다.

관련 문제