asp:超链接导航

时间:2009-09-08 08:53:07

标签: c# asp.net javascript

我正在使用asp:超链接按钮打开条款和条件弹出窗口。 超链接的代码是 -

<asp:HyperLink ID="HyperLink4" Target="_blank"
    NavigateUrl="javascript:window.open('test.aspx');"
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink> 

当我在浏览器中单击此Url时,它会打开我的test.aspx页面但是与test.aspx一起;它打开了另一个页面,页面的网址是 - “JavaScript的:window.open( 'Test.aspx文件');” 在这个不需要的页面的主体 - [对象]。

您能否建议我如何摆脱这个不需要的页面。

由于

5 个答案:

答案 0 :(得分:5)

使用: -

<击>

<击>
<asp:HyperLink ID="HyperLink4" Target="_blank"
  NavigateUrl="javascript:window.open('test.aspx'); return false;"
  ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink>

<击>

问题是window.open返回一个窗口对象。 javascript:“协议”的一个目的是允许javascript代码生成HTML内容,返回该协议后面的表达式。导航然后发生在包含该HTML的新页面。

在你的情况下因为你有Target =“_ blank”一个新页面被打开并且你的表达式返回的对象(由window.open打开的新窗口)调用了toString()方法,这就是显示的内容。这个额外的窗口。

修改

我已经破解了代码,因为它不起作用。 silky提供了正确的解决方案。但是我没有删除答案,因为对问题代码中发生的事情的解释是有效的。因此解决方案确实是: -

<asp:HyperLink ID="HyperLink4" href="#"
  onclick="window.open('test.aspx'); return false;"
  ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink>

Target不再需要它不被使用。保留为HyperLink控件,因为OP可能有其他原因需要它作为页面上的控件。

答案 1 :(得分:4)

是否有任何理由需要使用HyperLink控件?

您可能只需使用标准HTML链接(或HtmlAnchor控件),然后使用客户端onclick事件触发您的JavaScript:

<a id="HyperLink4" runat="server" href="test.aspx" target="_blank"
    onclick="window.open('test.aspx');return false;"
    style="color:#F58022">Terms and Conditions</a>

答案 2 :(得分:2)

成功:

NavigateUrl="javascript:window.open('test.aspx'); return false;"

然而,更好的做法是将其放在OnClientClick

NavigateUrl="#" OnClientClick="window.open('text.aspx'); return false"

- 编辑:

<asp:LinkButton ID="HyperLink4" Target="_blank"
    NavigateUrl="#" OnClientClick="window.open('text.aspx'); return false"
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:LinkButton >

每条评论都已更新。

答案 3 :(得分:1)

 <asp:HyperLink ID="HyperLink4" Target="_blank"
        NavigateUrl="javascript:void window.open('test.aspx');"
        ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink>

答案 4 :(得分:0)

删除Target = _Blank,你不需要它,javascript打开一个新窗口......

提示:要知道它的行为有何不同,请在浏览器中查看源代码并检查Web控件在HTML术语中生成的内容