iFrames
Verarbeite Aktivitätsdaten, die in eingebetteten Frames leben.
iFrame-Presence-Skripte werden optional unterstützt. Setze iframe auf true und gib iFrameRegExp in metadata.json an.
Eine iFrame-Presence konfigurieren
Füge das URL-Muster der verschachtelten Frames in metadata.json ein:
{
"iframe": true,
"iFrameRegExp": "player\\.example\\.com/embed/"
}Erstelle neben presence.ts eine iframe.ts-Datei. Sie läuft in passenden verschachtelten Frames:
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,
},
})
})Empfange die Daten in presence.ts:
presence.on("iFrameData", (data) => {
iFrameData = data
})iFrameData wird einmal pro Nachricht ausgelöst. Bei mehreren Frames musst du die Daten in der Haupt-Presence identifizieren oder zusammenführen. iFrameRegExp wird gegen die URL des verschachtelten Frames geprüft.
Empfohlener Ansatz
Verwende die iframe-Behandlung nur, wenn die Hauptseite nicht auf den benötigten Zustand zugreifen kann.
Bevorzuge stabile DOM-Selektoren, Mediaelemente und öffentlichen Seitenzustand, bevor du iframe-Logik hinzufügst.
Sicherheit
Vermeide das Sammeln persönlicher oder sensibler Daten aus Frames. Eine Presence sollte nur Aktivitätsinformationen senden, die für die Discord-Rich-Presence nützlich sind.