J'ai du code HTML que je passe à une fonction censée trouver tous les iframes, remplacer le code iframe par une image, puis renvoyer le HTML modifié. Cependant, il semble ne pas remplacer le code iframe dans le HTML retourné. Je suis assez sûr que je référence simplement mal le remplacement, mais je ne trouve aucun exemple en ligne similaire à ce que j'essaie de faire. Ils font tous référence à la recherche dans l'ensemble d'un document ou après l'affichage du HTML dans le document. Ce HTML n'est pas et ne peut pas être en raison des exigences de l'application.
Veuillez noter : J'ai déjà généré du code youtube pour remplacer le code iframe. Le problème réside dans l'exécution du remplacement.
function article_youtube_convert(html) {
//parcourir les iframes pour youtube et les convertir en intégrations
$(html).find('iframe').each(function(i) {
alert(this.src);
//ok ce que nous devons faire ici, c'est vérifier s'il s'agit de youtube
src_youtube = this.src;
if(src_youtube.indexOf('http://www.youtube.com')!=-1){
//maintenant nous avons besoin de l'identifiant de la vidéo
url_parts = src_youtube.split('/');
youtube_id = url_parts[url_parts.length-1];
url_parts = youtube_id.split('?');
youtube_id = url_parts[0];
youtube_link = 'http://www.youtube.com/watch?v'+youtube_id;
img_youtube = 'Voir la vidéo YouTube';
$(this).replaceWith(img_youtube);
//alert(document.getElementById('tempvid').innerHTML);
}
});
return html;
}
MISE À JOUR
J'ai décidé d'essayer d'utiliser une approche outerHTML et de remplacer le texte par le nouveau texte de remplacement dans la variable comme indiqué ci-dessous. J'alerte la source complète sans problème, mais cela ne la remplace toujours pas.
jQuery.fn.outerHTML = function(s) {
return s
? this.before(s).remove()
: jQuery("