我有一个页面,其中有一个可以打开报告的链接按钮。如果有 OnClientClick="aspnetForm.target ='_blank';" 在此链接按钮上 因此报告会在新窗口/选项卡中打开。这按预期工作。我也有一个常规按钮。
如果首先单击链接按钮,则第二个按钮在单击时也会打开一个新窗口。我该如何阻止这种情况发生?
我真的不知道如何正确表达问题,所以请随时编辑问题。
我有一个页面,其中有一个可以打开报告的链接按钮。如果有 OnClientClick="aspnetForm.target ='_blank';" 在此链接按钮上 因此报告会在新窗口/选项卡中打开。这按预期工作。我也有一个常规按钮。
如果首先单击链接按钮,则第二个按钮在单击时也会打开一个新窗口。我该如何阻止这种情况发生?
我真的不知道如何正确表达问题,所以请随时编辑问题。
您在 LinkButton 上的 clientClick 代码会修改整个表单目标。您可能只需添加
OnClientClick="aspnetForm.target ='_self';"
到第二个(常规)按钮。这将再次重新分配表单目标 - 这次是“自我”。
问题是您正在重新分配aspnetForm.target
单击第一个按钮时的值。而不是这种方法,为什么不使用window.open
呢?
OnClientClick="void(window.open('http://www.google.com')); return false;"
在我看来,使用这种方法的最佳解决方案是在单击此表单中包含的任何其他按钮时重置特定表单的目标。
window.document.forms[0].target = '';
如果您不喜欢这种方法,您可以在新选项卡打开后不久使用 setTimeout() 触发同一行代码。
您能否尝试渲染一个 HTML 锚(而不是 asp:linkbutton),并将 href 设置为适当的 url 并将目标属性设置为 _blank
<a href="urlOfThePage" target="_blank" >Click me</a>