我正在使用 asp:hyperlink
按钮打开一个条款和条件弹出窗口。
超链接的代码是 -
<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
它会打开另一个页面:
- 页面的 URL 是:
"javascript:window.open('test.aspx');"
- 页面主体为:
[object]
你能建议我如何删除这个不需要的页面吗?
谢谢
最佳答案
使用:-
<罢工>罢工>
<罢工><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:
的目的之一“协议(protocol)”是允许 javascript 代码生成 HTML 内容,返回是遵循协议(protocol)的表达式。然后导航到包含该 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 可能出于其他原因需要它作为页面上的控件。
关于c# - ASP :hyperlink navigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392804/