Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Récuperer tout les liens contenue dans une iframe en javascript

par Morgan

publié dans Javascript

Bonjour à tous,

Il fallait que je récupère tout les liens contenue dans une iframe pour les "éclater",

comme j'ai pas mal galérer, je partage le code :

// on recupere le contenu du texte (qui se situe dans une iframe
            var frames = document.getElementsByTagName('iframe');

            // normalement il y a qu'une seul iframe, mais au cas où je passe par un for
            for (var i = 0; i < frames.length; i++) {
                if (!frames[i].id) {

                    var anchors = frames[i].contentDocument.getElementsByTagName("a"); // je recupere tous les liens
                    var images = frames[i].contentDocument.getElementsByTagName("img"); // je recupere toutes les images

                    // pour chaque lien
                    for (var j in anchors) {

                        // on s'assure que le lien existe
                        if(typeof(anchors[j].href) != "undefined" && anchors[j].href !== null) {

                            // pour pouvoir utiliser le lien dans la regex, il faut lui supprimer tout les caracteres spéciaux
                            var regexLink = anchors[j].href.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1"); // echape tout les caracteres speciaux
                            var regexText = anchors[j].innerHTML.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");

                            // on creer la regex
                            var rgxp = new RegExp('<a(.*?)href="'+regexLink+'"(.*?)<\/a>','gi');

                            // et on remplace
                            html = html.replace(rgxp, anchors[j].innerHTML+' ('+anchors[j].href+') ');

                        } //fsi variable null
                    } // fpour chaque lien

                  

                } // fsi iframe existe
            } //fpour chaque iframe
Commenter cet article