Javascript et "Magic Links"

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Javascript et "Magic Links"

Message par Fabienne C. le Sam 27 Oct 2012 - 19:29

Bonsoir !
Voici le problème que je rencontre avec l'utilisation d'un script JavaScript : la fonctionnalité "Magic Links" transforme automatiquement les adresses en lien <a href="..."> alors qu'il faudrait conserver l'adresse seule (sous forme de texte, pas sous forme de lien) pour que le script fonctionne...
Si quelqu'un a une solution à ce problème, je suis preneuse !
Merci d'avance.
Bien cordialement,
Fabienne


Dernière édition par Fabienne C. le Lun 29 Oct 2012 - 9:33, édité 1 fois

Fabienne C.
Nouveau membre

Féminin
Messages : 3
Inscrit(e) le : 27/10/2012

http://www.le-rib.com/
Fabienne C. a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et "Magic Links"

Message par Ea le Dim 28 Oct 2012 - 23:01

Bonjour,


Je ne comprends pas, vous dites donc :

- Le script "magic links" transforme les adresses mises en texte en lien cliquable.
- Il faut conserver les liens sous forme de texte pour que le script magic links fonctionne.

Et donc où est votre problème ? Et aussi forumactif remplace déjà les adresses par un lien cliquable, donc je ne vois pas trop l'utilité.

Cordialement.

Ea
Aidactif
Aidactif

Messages : 23418
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et "Magic Links"

Message par Fabienne C. le Dim 28 Oct 2012 - 23:50

Bonsoir !

Je précise un peu mon problème.
Voici mon script (destiné à simuler une balise [mp3]url_du fichier_mp3[/mp3] pour insérer un mini lecteur mp3 dans un post) :

Code:
jQuery(document).ready(function(){
  var divs = document.getElementsByTagName('div');
  for (i=0; i<divs.length; i++){
      if(divs[i] != null && divs[i].className == 'postbody'){
        reg1 = new RegExp('[\[]mp3[^[]', 'g');
        reg2 = new RegExp('[\[]/mp3[^[]', 'g');
        contenu = divs[i].innerHTML;
        split = contenu.split(" ");
        nouveaucontenu = contenu.replace(reg1,'<object type="application/x-shockwave-flash" data="http://www.ixeo.eu/player/player_mp3_maxi.swf" width="300" height="20">
            <param name="movie" value="http://www.ixeo.eu/player/player_mp3_maxi.swf" />
            <param name="FlashVars" value="width=300&mp3=').replace(reg2,'&showstop=1&showvolume=1&volume=100" />
            </object>');
        if(contenu != nouveaucontenu){
            divs[i].innerHTML = nouveaucontenu;
        }
      }
  }
});
Le problème est que quand on utilise cette balise, "url_du_fichier_mp3" est automatiquement transformé en un lien
<a href="url_du_fichier_mp3"> donc forcément le script ne marche pas !!

J'espère avoir été claire...

Pour info, j'ai trouvé une solution (fort peu satisfaisante) pour contourner ce problème, en modifiant ainsi la ligne 11 de mon script :

Code:
<param name="FlashVars" value="width=300&mp3=http://www.').replace(reg2,'&showstop=1&showvolume=1&volume=100" />
Mais ça oblige les utilisateurs à donner une url sans le préfixe http://www. ce qui est peu intuitif !
Et en plus ça ne marche pas si l'url est de type http:// seul (sans www)

Merci d'avance !
Bien cordialement,
Fabienne

Fabienne C.
Nouveau membre

Féminin
Messages : 3
Inscrit(e) le : 27/10/2012

http://www.le-rib.com/
Fabienne C. a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et "Magic Links"

Message par Ea le Lun 29 Oct 2012 - 8:41

D'accord. Donc un script comme ceci devrait faire l'affaire :

Code:
$(function() {
  // on prend les liens finissant par [/mp3]
  $('.postbody a[href$="[/mp3]"]').each(function() {
    // On ignore ceux sans texte [mp3] qui précède
    if(this.previousSibling.nodeType != 3 || this.previousSibling.nodeValue.length < 5 || this.previousSibling.nodeValue.indexOf("[mp3]") != this.previousSibling.nodeValue.length - 5) {
      return
    }
    // on retire [mp3] du texte précédent le lien
    this.previousSibling.nodeValue = this.previousSibling.nodeValue.substr(0, this.previousSibling.nodeValue.length - 5);
    // on remplace le lien par le lecteur flash
    $(this).replaceWith('<object type="application/x-shockwave-flash" data="http://www.ixeo.eu/player/player_mp3_maxi.swf" width="300" height="20"><param name="movie" value="http://www.ixeo.eu/player/player_mp3_maxi.swf" /><param name="FlashVars" value="width=300&mp3=' + encodeURIComponent($(this).attr("href").substr(0, $(this).attr("href").length - 6)) + '&showstop=1&showvolume=1&volume=100" /></object>')
  })
});

Ea
Aidactif
Aidactif

Messages : 23418
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et "Magic Links"

Message par Fabienne C. le Lun 29 Oct 2012 - 9:32

Merci infiniment pour cette réponse rapide.
Cordialement,
Fabienne

Fabienne C.
Nouveau membre

Féminin
Messages : 3
Inscrit(e) le : 27/10/2012

http://www.le-rib.com/
Fabienne C. a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum