Rails: 在新选项卡中打开链接(使用‘ link_to’)

我有这个密码:

<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),
"http://www.facebook.com/mypage" %>

当用户单击链接时,如何在新选项卡中打开它?

98310 次浏览

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 %>

试试这个:

<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>

如果你正在寻找如何在 html 中打开一个新标签页的链接(对于任何来自 Google 的人) ,这里:

<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>

您也可以使用 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 %>

我的理解是: 你可以要求浏览器打开一个新的选项卡或新的网站。但这取决于用户设置。我认为这个问题已经得到了解答。

除了当需要将链接选项和 html 选项分离时,我掉进了一个陷阱:

link_to(name = nil, options = nil, html_options = nil, &block)

例如:

link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })

为了补充前面的答案,下面的格式是正在建议的 rubocopic。这可能是一个安全风险,因为加载的页面可以控制上一个页面,并可能为了钓鱼目的更改其位置。

为了防止出现这种情况,需要在代码中添加“ rel”属性。

rel: 'noopener'

现在,link _ to 应该是:

<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>

机械警察文件