Command Palette

Search for a command to run...

iFrames

Kendalikan data aktiviti yang berada di dalam bingkai terbenam.

Skrip presence iFrame disokong sebagai ciri pilihan. Tetapkan iframe kepada true dan nyatakan iFrameRegExp dalam metadata.json.

Konfigurasi presence iFrame

Tambah corak URL bingkai bersarang dalam metadata.json:

{
  "iframe": true,
  "iFrameRegExp": "player\\.example\\.com/embed/"
}

Cipta fail iframe.ts di sebelah presence.ts. Ia berjalan dalam bingkai bersarang yang sepadan:

const iframe = new iFrame()

iframe.on("UpdateData", () => {
  const video = document.querySelector("video")
  if (!video) return

  iframe.send({
    video: {
      paused: video.paused,
      currentTime: video.currentTime,
      duration: video.duration,
      title: document.querySelector(".video-title")?.textContent,
    },
  })
})

Terima data dalam presence.ts:

presence.on("iFrameData", (data) => {
  iFrameData = data
})

iFrameData dipancarkan sekali bagi setiap mesej. Untuk beberapa bingkai, kenal pasti atau gabungkan data dalam presence utama. iFrameRegExp dibandingkan dengan URL bingkai bersarang.

Pendekatan Disyorkan

Gunakan pengendalian iframe hanya apabila halaman utama tidak dapat mengakses keadaan yang diperlukan.

Utamakan pemilih DOM yang stabil, elemen media, dan keadaan halaman awam sebelum menambah logik iframe.

Keselamatan

Elakkan mengumpul data peribadi atau sensitif daripada bingkai. Presence hanya perlu menghantar maklumat aktiviti yang berguna untuk Discord Rich Presence.