为啥“_Blank”不会导致 URL 在新的浏览器窗口中打开?
Posted
技术标签:
【中文标题】为啥“_Blank”不会导致 URL 在新的浏览器窗口中打开?【英文标题】:Why does "_Blank" not cause the URL to open in a new Browser Window?为什么“_Blank”不会导致 URL 在新的浏览器窗口中打开? 【发布时间】:2021-01-21 22:13:07 【问题描述】:我有这段代码,使用 Target="_blank" 应该在新标签中打开“NavigateURL”:
<div class="row">
<asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="https://www.amazon.com/Rebel-Cause-Twains-
Hidden-Memoirs/dp/107331071X/garrphotgall-20">
<asp:image runat="server" ImageUrl="Images\RWAC_BothCovers.jpg"
style="width:144px;height:120px;margin-left: 60px;" /><br />
<asp:Label runat="server" Target="_blank"></asp:Label>
</asp:HyperLink>
</div>
...但事实并非如此;这是因为它是我网站的“测试”版本,从 Visual Studio (IIS Express (Google Chrome)) 运行?或者它在“现实世界”中也不能正常工作?如果是这样,我该怎么做才能解决它?
我不知道为什么标签需要在那里(我从其他地方复制了这个想法),但即使我在 asp 的主要部分中添加了 Target="_blank" :超链接(在 asp:Label 之外)——无论我是否将标签完全取出——它的工作原理都是一样的(它不能正常工作,或者像我期望的那样)。
【问题讨论】:
这能回答你的问题吗? How do I use Target=_blank on a response.redirect? 排序;但我不想使用 javascript。我仍然无法让 Target=_blank 工作 引用上面评论中的问题:«如果我理解正确,您希望能够在新窗口中打开重定向的 URL,但可能会在同一窗口中保留原始目标。不幸的是,您不能这样做,因为重定向是由服务器而不是浏览器提供的。您可能会重定向到一个页面,该页面包含一些基于 URL 查询字符串参数打开一个新窗口的脚本。但是如果你不小心的话,这会让你自己暴露在 XSS 面前。 » 为什么标签上有目标而不是链接? 我在下面回答时没有看到您的评论。 【参考方案1】:问题应该很明显:Target="_blank" 位于错误的元素上。事实上,我根本不需要 Label。
将指令放在正确的位置(在 asp:HyperLink 上):
<div class="row" style="justify-content:center;padding-top: 8px;padding-bottom: 4px;">
<asp:HyperLink ID="HyperLink10" runat="server" Target="_blank"
NavigateUrl="https://www.amazon.com/Adventures-Screen-Trade-William-
Goldman-ebook/dp/B007Z7UDF8/garrphotgall-20">
<asp:image runat="server"
ImageUrl="Images\Goldman_AdventuresInTheScreenTrade.jpg"
class="img-fluid" style="width:144px;height:144px;border: 2px solid blue;"
/>
</asp:HyperLink>
</div>
...使其正常工作 - 单击图像会打开一个新选项卡。
【讨论】:
以上是关于为啥“_Blank”不会导致 URL 在新的浏览器窗口中打开?的主要内容,如果未能解决你的问题,请参考以下文章