2012-10-11 3 views
0

나는 이벤트를 작성하고 새 팝업 창을 열려고하는 샘플 asp.net 단추가 있습니다. 어떤 이유로 팝업 창이 열리지 않습니다. 제발 알 수 있습니까? 문제가 브라우저 또는 코드팝업 창이 열리지 않습니다. asp.net을 클릭하십시오.

에서 Test.aspx

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script language="javascript" type="text/javascript"> 

     function openNewWin(url) { 

      var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1'); 

      x.focus(); 

     } 

</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:Button ID="btnOpenPop" runat="server" Text="Open Pop"   

     onclick="btnOpenPop_Click" /> 
    </div> 
    </form> 
</body> 
</html> 

Test.cs와 관련이 있는지 여부를

public partial class Test : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 


     } 

     protected void btnOpenPop_Click(object sender, EventArgs e) 
     { 
      string url = "http://www.dotnetcurry.com"; 

      ClientScript.RegisterStartupScript(this.GetType(), "OpenWin", "<script>openNewWin('" + url + "')</script>"); 




     } 
    } 
+1

FireBug를 사용하여 코드 또는 오류 콘솔을 검사/디버그하여 오류의 원인을 확인해 보셨습니까? – DaveDev

+0

예, 검사가 자바 스크립트 openNewWin 함수에 도달했지만 오류가 표시되지 않습니다. – mahesh

+0

실제로 해당 행에 도달 했습니까? 콘솔을 열고 다음을 입력하십시오. window.open ('http : // www.dotnetcurry.com', 'MyWindow', 'width = 600, height = 600, toolbar = 1'); 그게 효과가있다. 다시 말하지만, 세미콜론을 함수 호출의 끝에 추가하려고 시도 했습니까? 그리고 btw, 브라우저가 뭐니? –

답변

1

openNewWin 호출 후 세미콜론을 추가하는 시도가? 같은 팝업창이

"<script>openNewWin('" + url + "');</script>" 
-2

사용 JQuery와 마찬가지로

$('#btnOpenPop).bind('click',function() { 

var x = window.open(url, 'mynewwin', 'width=600,height=600,toolbar=1'); 

x.focus(); 

}); 
3

RegisterStartupScript 페이지로드 (클라이언트 측)에서 실행하도록되어 스크립트를 등록하는 것입니다. RegisterClientScript를 대신 사용하십시오.

하지만 왜 자바 스크립트 기능을 실행하기 위해 포스트 백을하고 싶습니까? 대신 코드를 서버 측을 실행하기 위해 노력하는 그에게 클라이언트 측 수행

<asp:Button ID="btnOpenPop" runat="server" Text="Open Pop" OnClientClick="openNewWin(<%= URL %>)" /> 

를하고 클래스의 속성으로 URL을 선언

public partial class Test : System.Web.UI.Page 
{ 
    public string URL {get;set;} 
    //... 
} 
+0

답장을 보내 주셔서 감사합니다. 서버 측에서 수행하려는 이유는 url 매개 변수에 일부 캡처 된 값을 첨부하려고합니다. – mahesh

+0

이 경우 RegisterStartupScript를 사용하면 문제가 발생하지 않습니까? 의도는 버튼 클릭 후 페이지가 다시로드 된 후에 팝업을 여는 것이 었습니다. –

+0

@ArturUdod, 네, 맞습니다. RegisterStartupScript에도 사용할 수 있습니다. –

0

머리에이 자바 스크립트를 넣어

<script type="text/javascript"> 
      function popup(url) { 
       var width = 600; 
       var height = 600; 
       var left = (screen.width - width)/2; 
       var top = (screen.height - height)/2; 
       var params = 'width=' + width + ', height=' + height; 
       params += ', top=' + top + ', left=' + left; 
       params += ', toolbar=no'; 
       params += ', menubar=no'; 
       params += ', resizable=yes'; 
       params += ', directories=no'; 
       params += ', scrollbars=no'; 
       params += ', status=no'; 
       params += ', location=no'; 
       newwin = window.open(url, 'd', params); 
       if (window.focus) { 
        newwin.focus() 
       } 
       return false; 
      }  
     </script> 

이제 buttone에 전화를 클릭

<asp:Button ID="Button2" runat="server" 
      OnClientClick="popup('addNewClients.aspx');" 
      Text="Add New Clients" /> 
관련 문제