Sobes.tech
Junior

Cum ați folosit elementul iframe în proiectele dvs.?

sobes.tech AI

Răspuns de la AI

Am folosit <iframe> pentru:

  • Afișarea conținutului din alte domenii: Încorporarea widget-urilor externe (hărți, playere video), blocuri publicitare, integrarea cu servicii.
  • Crearea de medii izolate: Rularea codului JavaScript extern sau a stilurilor fără riscul de a afecta pagina principală. De exemplu, pentru sandbox atunci când vizualizați conținutul utilizatorului sau porniți editoare de cod.
  • Interacțiunea între domenii: Transferul de date între pagina părinte și conținutul <iframe> folosind window.postMessage.
  • Incorporarea paginilor HTML statice: Afișarea unei părți a site-ului sau documentului fără navigare completă.

Exemplu de utilizare cu window.postMessage:

Pagină părinte:

// Trimiterea mesajului către iframe
const iframe = document.getElementById('my-iframe');
iframe.contentWindow.postMessage('salut din părinte', 'https://trusted-domain.com');

// Primirea mesajului din iframe
window.addEventListener('message', (event) => {
  // Verificarea sursei mesajului pentru siguranță
  if (event.origin === 'https://trusted-domain.com') {
    console.log('Mesaj din iframe:', event.data);
  }
});

Pagina din interiorul iframe:

// Primirea mesajului din pagina părinte
window.addEventListener('message', (event) => {
  // Verificarea sursei mesajului pentru siguranță
  if (event.origin === 'https://parent-domain.com') {
    console.log('Mesaj de la părinte:', event.data);

    // Trimiterea răspunsului către pagina părinte
    event.source.postMessage('salut din iframe', event.origin);
  }
});

Exemplu de încorporare video:

<iframe
  src="https://www.youtube.com/embed/VIDEO_ID"
  width="560"
  height="315"
  frameborder="0"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
  allowfullscreen
></iframe>

Atunci când lucrați cu <iframe>, este întotdeauna important să acordați atenție securității, în special atributului sandbox și verificării event.origin atunci când utilizați window.postMessage. De asemenea, trebuie luate în considerare aspecte SEO, deoarece conținutul <iframe> este indexat de motoarele de căutare.