Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

HTML DOM Object type Property - คุณสมบัติ type ของ object element

คุณสมบัติ type ของ HTMLObjectElement (<object>) ใช้ **อ่านหรือตั้งค่า** MIME type ของเนื้อหาที่ฝังอยู่ เช่น application/pdf, image/svg+xml, video/mp4

รูปแบบการใช้งาน

// อ่านค่า
const mimeType = objectElement.type;

// ตั้งค่า
objectElement.type = "application/pdf";

MIME Types ที่พบบ่อย

ประเภท MIME Type 副檔名
PDF application/pdf .pdf
Flash (ล้าสมัย) application/x-shockwave-flash .swf
SVG image/svg+xml .svg
Video MP4 video/mp4 .mp4
Audio MP3 audio/mpeg .mp3
Java Applet (ล้าสมัย) application/x-java-applet .class, .jar

ตัวอย่างการใช้งาน

<!DOCTYPE html>
<html>
<body>
  <h2>Object Type Property Demo</h2>
  
  <object id="pdfObject" 
          width="100%" 
          height="400px" 
          data="sample.pdf" 
          type="application/pdf">
    <p>เบราว์เซอร์ไม่รองรับ PDF embedding. <a href="sample.pdf">ดาวน์โหลด PDF</a></p>
  </object>
  
  <br>
  <button onclick="showType()">แสดง MIME Type</button>
  <button onclick="changeType()">เปลี่ยนเป็น SVG</button>
  <p id="result"></p>
  
  <script>
    function showType() {
      const obj = document.getElementById('pdfObject');
      document.getElementById('result').textContent = 
        'MIME Type ปัจจุบัน: ' + obj.type;
    }
    
    function changeType() {
      const obj = document.getElementById('pdfObject');
      obj.data = 'image.svg';
      obj.type = 'image/svg+xml';
      document.getElementById('result').textContent = 
        'เปลี่ยนเป็น: ' + obj.type;
    }
  </script>
</body>
</html>

<object> vs <embed> vs <iframe>

แท็ก ใช้สำหรับ type attribute
<object> เนื้อหาภายนอกทั่วไป (PDF, SVG, ไฟล์สื่อ) ✅ รองรับ
<embed> ปลั๊กอิน/เนื้อหาเก่า (Flash, Java) ✅ รองรับ
<iframe> หน้าเว็บอีกหน้าหนึ่ง (browsing context) ❌ ไม่มี (ใช้ src)
<video>/<audio> สื่อสมัยใหม่ ใช้ <source type> แทน

แอตทริบิวต์สำคัญของ <object>

  • data - URL ของไฟล์ข้อมูล
  • type - MIME type (ช่วยเบราว์เซอร์ตัดสินใจวิธีเล่น)
  • ้
  • width, height - ขนาด
  • name - ชื่อสำหรับ form submission/target
  • usemap - client-side image map
  • form - ผูกกับ form (HTML5)

Fallback Content

เนื้อหาภายใน <object> จะแสดงเมื่อเบราว์เซอร์ไม่รองรับ type หรือโหลดไม่สำเร็จ:

<object data="chart.svg" type="image/svg+xml">
  <!-- Fallback: รูปภาพ PNG แทน -->
  <img src="chart.png" alt="Chart data">
  <p>ดาวน์โหลด: <a href="chart.svg">SVG</a> | <a href="chart.pdf">PDF</a></p>
</object>

ข้อควรระวัง

  • <object> ใช้สำหรับ plugins/legacy content สำหรับสื่อสมัยใหม่ ใช้ <video>, <audio>, <img>, <iframe> แทน
  • Flash, Java Applets, Silverlight ล้าสมัยแล้วและไม่รองรับในเบราว์เซอร์สมัยใหม่
  • PDF embedding ขึ้นอยู่กับเบราว์เซอร์/OS - บางตัวต้องดาวน์โหลด