我在div弹出窗口的UpdatePanel中有一个链接按钮。在Button_Click上,我希望通过javascript打开一个新窗口。 我尝试了ScriptManager.RegisterStartupScript以及ScriptManager.RegisterClientScriptBlock,但是Window没有打开。
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<form class="message-form" action="#">
<fieldset>
<asp:LinkButton ID="LinkButton1" runat="server" class="btn-facebook" Text="facebook" OnClick="LinkButton1_Click"></asp:LinkBu
tton>
<label for="TextBox1">Or send a message on Blissdate here:</label>
<div class="textarea">
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Rows="10" Columns="30"></asp:TextBox><asp:Label ID="lbl" runat="server" />
</div>
<div class="btn-holder">
<asp:LinkButton ID="LinkButton2" runat="server" class="btn-send" Text="send" OnClick="LinkButton2_Click"></asp:LinkButton>
</div>
</fieldset>
</form>
protected void LinkButton1_Click(object sender, EventArgs e)
{
DataRow[] row1 = ds.Tables[0].Select("FB_Id='" + HiddenField3.Value + "'");
string url = row1[0].ItemArray[3].ToString();
lbl.Text = url;
//ScriptManager.RegisterClientScriptBlock(this, GetType(), "newPage", "window.open('" + url +');", true);
ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", "open('" + url + "');", true);
}
<script type="text/javascript">
function open(url) {
var w = window.open(url, '', 'width=1000,height=600,toolbar=0,status=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1');
w.focus();
}
</script>
请告诉我代码是否有问题..
答案 0 :(得分:5)
将您的open
功能重命名为其他功能。如果您在浏览器中启动javascript控制台,您会看到许多递归调用open
。我不是一个javascript专家,但我相信你遇到了堆栈溢出异常。
<script type="text/javascript">
function customOpen(url) {
var w = window.open(url, '', 'width=1000,height=600,toolbar=0,status=0,location=0,menubar=0,directories=0,resizable=1,scrollbars=1');
w.focus();
}
</script>
然后更改您的注册:
ScriptManager.RegisterClientScriptBlock(this, GetType(), "newpage", "customOpen('" + url + "');", true);
答案 1 :(得分:0)
检查您的浏览器弹出窗口阻止程序是否已启用。请禁用它会起作用....