单击浏览器后退按钮时,使用window.open打开的窗口将重新打开

时间:2014-01-16 10:47:46

标签: c# javascript asp.net

我创建了一个asp.net Web应用程序,它在default.aspx中有一个linkbutton和超链接。 Hyperlink设置为navigationurl - “www.google.com”。 Linkbutton使用javasript的window.open在新选项卡中打开相同的URL。

Default.aspx的

    <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">Data</asp:LinkButton><br />
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://www.google.co.in">google</asp:HyperLink>

Default.aspx.cs

protected void LinkButton1_Click(object sender, EventArgs e)
    {
       string url = "http://www.google.com";
        ScriptManager.RegisterStartupScript(Page, typeof(Page), "OpenWindow", "window.open('" + url + "');", true);
    }

重现我的查询的步骤: 1.单击LinkBut​​ton。这会在新窗口/标签中打开Goog​​le。 2.单击“超链接”。这导航到谷歌。 3.单击浏览器后退按钮。 这次浏览器导航回default.aspx,同时google在新窗口/标签页面中打开 我希望这不会发生。

3 个答案:

答案 0 :(得分:0)

这是代码:将代码添加到您不希望用户返回的页面。

如果(history.length大于0) history.go(1);

在身体负荷上调用

基本上我增加浏览器历史记录。

答案 1 :(得分:0)

在头标记中添加此代码功能

<script type="text/javascript">
        function myfun() {

            window.open("http://www.google.co.in");
            return false;
        }
    </script>

并在你体内

<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="return myfun();">Data</asp:LinkButton><br />
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="http://www.google.co.in">google</asp:HyperLink>

注意:避免向服务器发出任何请求,除非不需要,您也可以在<a>标记的帮助下保留target="_blank"

答案 2 :(得分:0)

使用超链接按钮代替链接按钮并使用target="_blank"url ="www.google.com"这将在新窗口中打开网址
不需要使用java脚本来打开一个新窗口....它也将解决您的问题

<asp:HyperLink ID="HyperLink2" Target="_blank" NavigateUrl="http://www.google.co.in" runat="server"  >Data</asp:HyperLink><br />

<asp:HyperLink ID="HyperLink1" Target="_self" runat="server" NavigateUrl="http://www.google.co.in">google</asp:HyperLink>