Je construis une application Meteor.js et l'une des choses que je voudrais faire est de tirer le titre et les balises meta description d'une page enregistrée. J'utilise this cross domain program et la moitié du code fonctionne.Javascript inter-domaine - Pull Meta Tags
Voici l'extrait; il prend la valeur donnée sous une forme marquée « url » et exécute le code:
$.get(url, function(response){
if ((suggestedTitle=((/<title>(.*?)<\/title>/m).exec(response.responseText))) != null){
$('#title').val(suggestedTitle[1]);
}else{
$('#title').val(url);
}
if ((suggestedDesc=($('meta[name=description]').attr('content'))) != undefined){
$('#desc').val(suggestedDesc[1]);
}else{
$('#desc').val('Description for this page cannot be found.');
}
});
Je reconnais que ce n'est pas préférable d'utiliser des expressions régulières pour analyser HTML (ouvert aux suggestions sur une alternative, mais je n'ai pas regardé dans celui-ci trop soigneusement) mais à part cela, ce script tire avec succès le titre de l'URL ou renvoie l'adresse Web si elle ne peut pas être trouvée, mais la description échoue et renvoie juste le texte de secours. J'apprécierais de l'aide, merci :)
Utilisez '$ (response.responseText) .find ('meta [nom =" description "]')' ou autre. Sans la partie '$ (response.responseText)', vous ne regardez pas la réponse - vous regardez la page en cours. Puisque vous savez déjà que l'utilisation de Regex n'est pas un bon moyen d'analyser HTML, laissez jQuery le faire de la bonne façon; alors juste traverser cet objet DOM – Ian
J'ai essayé ceci mais pour une raison quelconque je n'arrive toujours pas à le faire fonctionner ... il me dit que la réponse est indéfinie. J'ai ajouté une méta description à la page que je suis en train de voir pour essayer de l'extraire à la place ... avez-vous un échantillon de code plus long? – brandonjschwartz
Je viens d'ajouter une réponse qui semble fonctionner. J'espère que ça aide! – Ian