HTML Academy · บทเรียน

การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download

ใช้แอตทริบิวต์ target และ download เพื่อควบคุมพฤติกรรมของลิงก์

บทเรียน 3 จาก 413 ขั้นตอน

การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download เป็นบทเรียน HTML Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน HTML Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

การเปิดในแท็บใหม่

แอตทริบิวต์ target ควบคุมตำแหน่งที่เอกสารที่ลิงก์ไว้จะเปิด:

<a href="https://example.com" target="_blank">Open in new tab</a>

<!-- target values:
  _blank  → new tab (or window)
  _self   → same tab (default)
  _parent → parent frame
  _top    → full window (exits frames)
-->

ความเสี่ยงด้านความปลอดภัยของแท็บใหม่

การใช้ target="_blank" โดยไม่มีมาตรการป้องกันจะสร้างช่องโหว่ด้านความปลอดภัย:

  • หน้าใหม่สามารถเข้าถึงหน้าต่างต้นทางผ่าน window.opener ได้
  • หน้าอันตรายอาจเปลี่ยนเส้นทางแท็บเดิมได้
  • การโจมตีนี้เรียกว่าการโจมตีแบบเปลี่ยนเส้นทางแท็บย้อนกลับ

ค่าความสัมพันธ์เพื่อป้องกันแท็บใหม่

เพิ่ม rel="noopener noreferrer" เสมอเมื่อใช้ target="_blank":

<a href="https://example.com"
   target="_blank"
   rel="noopener noreferrer">
  Open Safely
</a>
<!-- noopener: prevents access to window.opener -->
<!-- noreferrer: also hides referrer header + implies noopener -->
<!-- Modern browsers add noopener by default, but always include it -->

ควรเปิดแท็บใหม่เมื่อใด

แนวทางด้านประสบการณ์ผู้ใช้สำหรับ target="_blank":

  • ใช้กับเว็บไซต์ภายนอกที่ผู้ใช้ไม่คาดว่าจะออกจากแอปพลิเคชันของคุณ
  • ใช้กับเอกสารอ้างอิง (ไฟล์พีดีเอฟ คู่มือ)
  • อย่าใช้สำหรับการนำทางไปยังหน้าภายใน
  • เตือนผู้ใช้เสมอ — เพิ่มไอคอนหรือชื่อที่ระบุว่า "เปิดในแท็บใหม่"

การแจ้งผู้ใช้ว่าเปิดในแท็บใหม่

แจ้งให้ผู้ใช้ทราบว่าลิงก์จะเปิดในแท็บใหม่:

<a href="https://example.com"
   target="_blank"
   rel="noopener noreferrer"
   aria-label="Visit Example (opens in new tab)">
  Visit Example
  <span aria-hidden="true">↗</span>
</a>
<!-- aria-label covers screen reader announcement
     The arrow icon gives visual users a hint -->

แอตทริบิวต์สำหรับดาวน์โหลด

แอตทริบิวต์ download บอกให้เบราว์เซอร์ดาวน์โหลดไฟล์ที่ลิงก์ไว้แทนการนำทางไปยังไฟล์นั้น:

<a href="/reports/q4-report.pdf" download>
  Download Q4 Report
</a>

<!-- Optionally specify the filename: -->
<a href="/api/export" download="my-data-2025.csv">
  Export CSV
</a>

ข้อจำกัดของแอตทริบิวต์สำหรับดาวน์โหลด

แอตทริบิวต์ download มีข้อจำกัดดังนี้:

  • ใช้ได้เฉพาะกับที่อยู่เว็บจากต้นทางเดียวกัน
  • การดาวน์โหลดจากต่างต้นทางต้องให้เซิร์ฟเวอร์ส่ง Content-Disposition: attachment
  • ชื่อไฟล์ใน download เป็นเพียงคำแนะนำ — ส่วนหัวจากเซิร์ฟเวอร์สามารถเปลี่ยนชื่อได้

การดาวน์โหลดตัวระบุทรัพยากรข้อมูล

คุณสามารถดาวน์โหลดเนื้อหาที่สร้างขึ้นโดยใช้ตัวระบุทรัพยากรข้อมูลได้:

<a href="data:text/plain;charset=utf-8,Hello%20World!"
   download="hello.txt">
  Download Text File
</a>
<!-- Generates a .txt file from inline data -->
<!-- Useful for generating small files client-side without a server -->

JavaScript และเป้าหมายของลิงก์

เมื่อ JavaScript จัดการการนำทาง ให้หลีกเลี่ยงการใช้ target="_blank" ในทางที่ผิด:

// If you must open a new window programmatically:
const win = window.open('https://example.com', '_blank', 'noopener,noreferrer');
// noopener via window.open requires the features string
// Not via rel on window.open

แอตทริบิวต์สำหรับติดตามการคลิก

แอตทริบิวต์ ping จะส่งคำขอแบบ POST เมื่อคลิกลิงก์ (สำหรับการวิเคราะห์ข้อมูล):

<a href="/destination" ping="/analytics/track">
  Track this click
</a>
<!-- Browser sends POST to /analytics/track when link is clicked -->
<!-- Rarely used — blocked by many browsers -->
<!-- Most analytics use JavaScript instead -->

แอตทริบิวต์ประเภทของลิงก์

แอตทริบิวต์ type ใช้บอกใบ้ชนิด MIME ของทรัพยากรที่ลิงก์ไว้:

<a href="/report.pdf" type="application/pdf">
  Download PDF Report
</a>
<a href="/data.json" type="application/json">
  JSON Data
</a>
<!-- Informational hint only — browser does not enforce it -->

ตรวจสอบอย่างรวดเร็ว

ควรใช้แอตทริบิวต์ด้านความปลอดภัยใดคู่กับการเปิดลิงก์ในแท็บใหม่เสมอ

สรุป: เป้าหมายและการดาวน์โหลด

แอตทริบิวต์ที่ควบคุมพฤติกรรมของลิงก์:

  • target="_blank" — เปิดในแท็บใหม่
  • เพิ่ม rel="noopener noreferrer" คู่กับ _blank เสมอ
  • เตือนผู้ใช้ด้วยภาพเมื่อลิงก์เปิดในแท็บใหม่
  • download — เริ่มการดาวน์โหลดไฟล์แทนการนำทาง
  • download="filename" — แนะนำชื่อไฟล์สำหรับการดาวน์โหลด
เริ่มต้นได้ฟรี

เรียนรู้ HTML ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
40
บทเรียน
159

คำถามที่พบบ่อย

บทเรียน “การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส HTML Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส HTML Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download”

ใช้แอตทริบิวต์ target และ download เพื่อควบคุมพฤติกรรมของลิงก์ คุณปฏิบัติ HTML Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน HTML Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน HTML Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน HTML Academy นี้ได้ไหม

ได้ บทเรียน HTML Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. องค์ประกอบ anchor และแอตทริบิวต์ href
  2. URL แบบสัมบูรณ์เทียบกับแบบสัมพัทธ์
  3. การเปิดลิงก์ในแท็บใหม่และแอตทริบิวต์ download
  4. การเชื่อมโยงไปยังส่วนต่าง ๆ ด้วยตัวระบุแฟรกเมนต์
← กลับไปที่ HTML Academy