ฉันมีรหัสนี้:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),
"http://www.facebook.com/mypage" %>
ฉันจะเปิดในแท็บใหม่เมื่อผู้ใช้คลิกที่ลิงค์ได้อย่างไร
ฉันมีรหัสนี้:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),
"http://www.facebook.com/mypage" %>
ฉันจะเปิดในแท็บใหม่เมื่อผู้ใช้คลิกที่ลิงค์ได้อย่างไร
คำตอบ:
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" %>
คุณสามารถใช้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 (สำหรับผู้ที่มาจาก Google) ที่นี่:
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
target: :_blank
หมาย
ความเข้าใจของฉันคือ: คุณสามารถขอให้เบราว์เซอร์เปิดแท็บใหม่หรือไซต์ใหม่ แต่สิ่งนี้ขึ้นอยู่กับการตั้งค่าของผู้ใช้ ฉันคิดว่าคำถามนี้ตอบ
ยกเว้นฉันจะตกหลุมพรางเมื่อจำเป็นต้องแยกตัวเลือกลิงก์ออกจากตัวเลือก html:
link_to(name = nil, options = nil, html_options = nil, &block)
ตัวอย่าง:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
หากต้องการเพิ่มคำตอบก่อนหน้ารูปแบบด้านล่างคือสิ่งที่ rubocop แนะนำ นี่อาจเป็นความเสี่ยงด้านความปลอดภัยเนื่องจากหน้าเว็บที่โหลดจะมีการควบคุมหน้าก่อนหน้านี้และสามารถเปลี่ยนตำแหน่งของหน้าเว็บเพื่อวัตถุประสงค์ในการหลอกลวง
เพื่อป้องกันไม่ให้คนนี้ต้องเพิ่มในคุณลักษณะ '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 %>