1

クリックイベントを作成し、新しい popupwindow を開こうとしているサンプルの asp.net ボタンがあります。何らかの理由でポップアップウィンドウが開きません。問題がブラウザまたはコードに関連しているかどうかを教えてください。

テスト.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>");




        }
    }
4

5 に答える 5

3

RegisterStartupScript は、ページの読み込み (クライアント側) で実行されるスクリプトを登録するためのものです。代わりに RegisterClientScript を使用してください。

しかし、JavaScript 関数を実行するためにポストバックを実行する必要があるのはなぜでしょうか? コードをサーバー側で実行する代わりに、クライアント側で実行します。

<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;}
    //...
}
于 2012-10-11T09:20:44.283 に答える
1

openNewWin呼び出しの後にセミコロンを追加しようとしましたか? このような

"<script>openNewWin('" + url + "');</script>"
于 2012-10-11T09:11:54.630 に答える
-2

ポップアップウィンドウにjqueryを使用します。

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

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

 x.focus(); 

}); 
于 2012-10-11T09:18:28.107 に答える