我正在使用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文件');” 在这个不需要的页面的主体 - [对象]。
您能否建议我如何摆脱这个不需要的页面。
由于
答案 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术语中生成的内容