56 votes

Création d'un IFRAME en utilisant JavaScript

J'ai une page web hébergée en ligne et j'aimerais qu'il soit possible que je puisse insérer un IFRAME sur une autre page web en utilisant un peu de JavaScript.

Quel serait le meilleur moyen possible, que j'ajoute simplement l'URL de ma page web au JavaScript et que cela fonctionne sur tous les navigateurs?

Merci

0 votes

En supposant que les deux pages vous appartiennent? Vous voulez insérer YourSiteA dans un iframe au sein de YourSiteB?

126voto

Hemant Metalia Points 8325

Vous pouvez utiliser :

    function prepareFrame() {
        var ifrm = document.createElement("iframe");
        ifrm.setAttribute("src", "http://google.com/");
        ifrm.style.width = "640px";
        ifrm.style.height = "480px";
        document.body.appendChild(ifrm);
    }

consultez également les bases de l'élément iFrame

1 votes

Je reçois une erreur 'document is not defined' lorsque j'essaie d'utiliser ceci.

0 votes

@Sparlarva: Je suppose que vous n'êtes pas dans le contexte du DOM HTML alors.

4voto

rxgx Points 2468

Il vaut mieux traiter le HTML comme un modèle que de construire des nœuds via JavaScript (après tout, le HTML n'est pas du XML.) Vous pouvez conserver la syntaxe HTML de votre IFRAME en utilisant un modèle qui peut être ajouté le contenu du modèle dans un autre DIV.

  var placeholder = document.getElementById("placeholder");
  var template = document.getElementById("iframeTemplate");
  placeholder.appendChild(template);

3 votes

Je n'ai jamais vu un script[type=text/html] auparavant ; y a-t-il une différence à le faire par rapport à un div[style=display:none] ?

3 votes

@David Cook, la syntaxe que vous avez mentionnée est destinée à des usages totalement différents. :)

-1voto

kolpaja Points 1

Alors j'ai essayé de mettre une vidéo youtube intégrée dans mon index.html en utilisant la clé API de Google Console, et voici la fonction que j'ai créée:

const searchVideos = async (key, search, maxResVideos) => {
    const config = { params: { key: key, q: search } }
    let res = await axios.get(`https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&maxResVideos=${maxResVideos}`, config);
    console.log('res:', res.data.items);
    res.data.items.forEach(item => {

        const video = document.createElement('div');
        video.innerHTML = ``;
        searchResult.appendChild(video);
    });
}

vous pouvez toujours apporter des modifications mais ceci insère la vidéo intégrée en créant une div et en plaçant l'iframe en tant que modèles de chaînes de caractères ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X