Tronquer un texte sans "truncable" ?

Toutes vos questions sur jQuery, CSS, HTML5, mise en page...
ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Tronquer un texte sans "truncable" ?

Messagede ph.gras » 13 Sep 2013, 16:10

J'aimerais couper le premier paragraphe de chaque page pour l'envoyer sur
Twitter, G+, et différents réseaux sociaux. J'ai cherché une combine pour
extraire une partie du texte, mais je n'ai pas vu d'autre chose qu'un plugin
jQuery pour le faire, et qui j'appelle truncable :
http://www.lafermeduweb.net/billet/trun ... y-535.html

Ça nécessite d'avoir une ressource supplémentaire, et ça m'embête un peu !

J'ai fait pour l'instant un truc tout simple, mais ça coupe aussi les mots :
Code: Tout sélectionner
<script type="text/javascript">
   jQuery(function($){
      var ti = $('title').html();
      var pm = $('link[rel=canonical]').attr('href');
      var ex = $.trim($('.entry').text().substr(0,120))+'…';
   });
</script>

Peut-on avoir un truc un peu plus élaboré, avec jQuery de série et sans option ?

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2180
Inscription: 06 Sep 2008, 22:05

Re: Tronquer un texte sans "truncable" ?

Messagede Galdon » 13 Sep 2013, 18:13

Si tu veux extraire le premier paragraphe d'un élément, pourquoi ne pas le récupérer tout simplement avec un sélecteur jQuery ?

Code: Tout sélectionner
<script type="text/javascript">
jQuery(function($){
   var premier_paragraphe = $('.entry p:first').text();
});
</script>


cf http://www.finalclap.com/faq/438-jquery ... mero-ordre pour :first
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Tronquer un texte sans "truncable" ?

Messagede ph.gras » 13 Sep 2013, 19:37

De quelque façon qu'il est récupérer, je souhaite tronquer le texte ensuite.

Déjà pour Twitter, on est vachement limité, alors… J'aimerais même, si ce
n'est pas trop demander, pouvoir tronquer le texte avec une variable pour
adapter la longueur de l'accroche au média. LOL !

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2180
Inscription: 06 Sep 2008, 22:05

Re: Tronquer un texte sans "truncable" ?

Messagede Galdon » 16 Sep 2013, 11:18

Essaie ça, ça devrait marcher :

Code: Tout sélectionner
/**
* Retourne un extrait de texte dont la longueur est intérieur ou égale à longueur_max.
* Elle ne coupe pas les mots en 2.
*/
function tease(texte, longueur_max){
   // découpe à la longueur max
   texte = texte.substr(0, maxLength);

   // re-découpe pour enlever le dernier mot si il a été coupé en 2
   texte = texte.substr(0, Math.min(texte.length, texte.lastIndexOf(" ")));
   
   return texte;
}
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Tronquer un texte sans "truncable" ?

Messagede ph.gras » 16 Sep 2013, 23:17

Ça semble se tenir, à vue d'œil. J'essaierai demain et
j'éditerai ce message avec le résultat des courses ;) !

Avatar de l’utilisateur
Galdon
Administrateur du site
Administrateur du site
 
Messages: 2180
Inscription: 06 Sep 2008, 22:05

Re: Tronquer un texte sans "truncable" ?

Messagede Galdon » 17 Sep 2013, 09:30

ph.gras a écrit:j'éditerai ce message avec le résultat des courses

Ah non, tu ne pourra pas éditer ton message :D parce que topic2694.html#p7145
"Si tu veux me parler, envoie-moi un... FAX !" - George Abitbol

ph.gras
Addict
Addict
 
Messages: 71
Inscription: 23 Juin 2013, 13:39

Re: Tronquer un texte sans "truncable" ?

Messagede ph.gras » 17 Sep 2013, 14:23

Bon, ben tant pis (si je ne peux pas éditer mon message) !

La fonction fonctionne bien sinon, à part une erreur de syntaxe (inattention) :
Code: Tout sélectionner
function tease(texte, longueur_max){
   // découpe à la longueur max
   texte = texte.substr(0, longueur_max);

   // re-découpe pour enlever le dernier mot si il a été coupé en 2
   texte = texte.substr(0, Math.min(texte.length, texte.lastIndexOf(" ")));
   
   return texte;
}


Retourner vers HTML / CSS / Javascript

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités