Открыть новую вкладку по нажатию кнопки?

Я хочу открыть новую вкладку при нажатии кнопки, кнопка, которая нажала, существует в Iframe.

Я использую этот код--

string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "')";
ClientScript.RegisterStartupScript(this.GetType(), "script", tempabc, true);

но это не должно показать никакого результата.

тогда я могу использовать этот код

Response.Redirect("ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "'");

Откроется следующая страница в том же Iframe.

что я могу сделать.

На моей странице.aspx я могу использовать эти теги.

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>
        <asp:Panel ID="PanelMail" runat="server">
            <asp:UpdatePanel ID="UpdatePanel15" runat="server">
                <ContentTemplate>
                      <table>                    
                         <tr>
                            <td colspan="2" style="padding-top: 14px; padding-bottom: 10px;">
                                <center>
                                    <asp:Button ID="BtnMail" Style="" Text="Mail" CssClass="btnn" runat="server" OnClick="BtnMail_Click"
                                        OnClientClick="return MailSubmit();" />
                                </center>
                            </td>
                        </tr>
                    </table>
                </ContentTemplate>
                <Triggers>
                <asp:AsyncPostBackTrigger ControlID="BtnMail" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
        </asp:Panel>
    </div>
    </form>
</body>

3 ответа

Как насчет этого?

string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "','_blank')";

Или же

добавлять formtarget="_blank" атрибут в вашей кнопке

Или же

<button  onclick="a()">Click Me</button> 
<script>
function a()
{
    window.open('url', '_blank', 'width=300,height=200');
}
</script>

Если вы не упомянули size он откроется в new tab иначе как popup,

window.open('url', '_blank') - next tab
window.open('url', '_blank','width=300,height=200') - popup

Попробуйте заменить свой текущий tempabc строка с этим:

string tempabc = "javascript:window.open('ReportViewer.aspx?ReportType=" + rptnew + "&Billno=" + billno + "&Mail=" + "Mail" + "&CCMail=" + CCMail + "&Subject=" + txtSubject.Text + "&MailBody=" + txtMailBody.Text + "','_newtab')";

Добавил '_newtab' атрибут, чтобы открыть его в новой вкладке.

Надеюсь, поможет.

Вы также можете сделать что-то подобное

<asp:Button ID="Button1" runat="server" Text="Button"
    onclick="Button1_Click" OnClientClick="document.forms[0].target = '_blank';" />

РЕДАКТИРОВАТЬ

Тогда попробуйте это:

<script type = "text/javascript">
 function SetTarget() {
     document.forms[0].target = "_blank";
 }
</script>

<asp:Button ID="Button1" runat="server" Text="Button"
    onclick="Button1_Click" OnClientClick = "SetTarget();" />

Здесь вы можете поставить несколько функций.

Другие вопросы по тегам