2012-10-11 125 views
0

我有樣品asp.net按鈕,我正在寫點擊事件,並試圖打開一個新的popupwindow,出於某種原因彈出窗口不打開,請我可以知道問題是否與瀏覽器或代碼彈出窗口無法打開按鈕點擊在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

雅我檢查,控制達到javascript openNewWin函數,但我沒有看到任何錯誤 – mahesh

+0

你確定你真的到達那條線嗎?打開控制檯並輸入:window.open('http:// www.dotnetcurry.com','MyWindow','width = 600,height = 600,toolbar = 1');那可行。再次嘗試在函數調用的最後添加一個分號?順便說一下,你的瀏覽器是什麼? –

回答

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。

但是,您爲什麼要做一個回發來運行一個JavaScript函數?而不是試圖執行代碼服務器端做客戶端:

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

,並宣佈將URL作爲你的類屬性:將這個JavaScript中的頭

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

感謝您的答覆,我試圖從serverside做的原因是我想附加一些運行時捕獲的值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" /> 
相關問題