我有这段代码:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),
"http://www.facebook.com/mypage" %>
当用户点击链接时,如何在新标签页中将其打开?
答案 0 :(得分:255)
target: :_blank
参数应该是link_to
的参数,而您将其放在image_tag
参数中。像这样修改你的代码:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>
或使用块:
<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
<%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>
<% end %>
答案 1 :(得分:14)
试试这个:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
答案 2 :(得分:7)
您也可以使用target: :_blank
代替target: '_blank'
<%= link_to image_tag("facebook.png", class: "facebook_icon", alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>
<强> link_to do
强>
<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
<%= image_tag "facebook.png", class: "facebook_icon", alt: "Facebook" %>
<% end %>
答案 3 :(得分:3)
如果您正在寻找如何在html中的新标签页中打开链接(对于来自Google的任何人),请点击此处:
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
答案 4 :(得分:1)
要添加到先前的答案,以下格式是rubocop建议的格式。这可能会带来安全风险,因为加载的页面将控制上一页,并且可能会更改其位置以进行网络钓鱼。
为防止这种情况,需要在代码中添加'rel'属性。
npm
现在link_to应该是:
rel: 'noopener'
答案 5 :(得分:0)
我的理解是:您可以要求浏览器打开新标签或新站点。但这取决于用户设置。我认为这个问题已经回答。
除了有必要将链接选项与html选项分开时,我陷入了陷阱:
link_to(name = nil, options = nil, html_options = nil, &block)
示例:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })