Javascript et censure des mots

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

Résolu Javascript et censure des mots

Message par Mattashes le Lun 16 Jan 2012 - 22:58

Bonjour,

J'ai ajouté une nouvelle balise a mon forum grâce a la censure des mots, voici le code:
[leet]: <div id=leet>
[/leet]: <script src=http://url.com/leet.js /></div>

Et voila ce que j'obtiens dans le code source lorsque je poste:

Code:
<div id="leet"> Bonjour <scr& #105;pt src="http://url.com/leet.js"/></div>

Comme vous le voyez, le i de script est échappé (& #105;) afin de ne pas pouvoir exécuter de JS.

Comment je pourrais résoudre mon problème ? J'ai besoin que mon leet.js s'exécute lors du post de l'utilisateur .... La balise div passe bien mais pas la balise script Sad


Dernière édition par Mattashes le Ven 20 Jan 2012 - 10:08, édité 2 fois

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Zorro le Mar 17 Jan 2012 - 11:03

Bonjour,

Je ne pense pas qu'il faille obligatoirement le mettre dans le message directement. Vu que vous êtes en phpbb3, vous ne pouvez pas mettre le code javascript dans les templates, je vous conseille donc de copier le code et de le mettre dans la gestion des Javascript.

Lien : PA > Modules > HTML & javascript > Gestion des codes Javascript




Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe


Zorro
Dévactif
Dévactif

Masculin
Messages : 1945
Inscrit(e) le : 05/12/2006

https://fr.wikipedia.org/wiki/Guy_Williams_(acteur)
Zorro a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Mar 17 Jan 2012 - 11:56

Bonjour et merci de votre reponse.

J'ai mis mon code dans un fichier dans la section "Gestion des codes Javascript".

Du coup au niveau du post j'obtiens bien ceci
Code:
<div id="leet"> Bonjour </div>

Mais le JS n'est pas execute, (j'ai coche l'option activer le JS sur toutes les pages), bien qu'il soit dans le header du fichier HTML dans le code source.

Voici mon code JS:

Code:
document.getElementById('leet').innerHTML = "insert leet text here";

En fait je pense que le code JS devrait s'executer lors du post de l'utilisateur, c'est pour ca j'avais ajoute mon script dans le div mais ca ne fonctionne pas ... Sad

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Zorro le Mar 17 Jan 2012 - 11:59

Il vaut mieux passer par une classe CSS pas par un id qui doit être unique or dans ca ne sera pas forcément le cas. Je pense que le code JS doit être modifié.

Pour qu'on puisse vous aidez pouvez-vous poster ne code Javscript ici entre les balises code ?


Dernière édition par Dauclem le Mar 17 Jan 2012 - 12:13, édité 1 fois




Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe


Zorro
Dévactif
Dévactif

Masculin
Messages : 1945
Inscrit(e) le : 05/12/2006

https://fr.wikipedia.org/wiki/Guy_Williams_(acteur)
Zorro a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Mar 17 Jan 2012 - 12:06

Le CSS fonctionne en effet si je veux rajouter des effets ou quoi, mais ce que je cherche a faire n'est pas faisable en utilisant du CSS (pas a ma connaissance en tout cas)

Code:
txt = document.getElementById('leet').innerHTML;
//txt = txt.substring(0, txt.length - 31);
txt = txt.replace(/a/gi, "4");
txt = txt.replace(/b/gi, "8");
txt = txt.replace(/c/gi, "<");
txt = txt.replace(/d/gi, "[)");
txt = txt.replace(/e/gi, "3");
txt = txt.replace(/f/gi, "|=");
txt = txt.replace(/g/gi, "6");
txt = txt.replace(/h/gi, "#");
txt = txt.replace(/i/gi, "!");
txt = txt.replace(/j/gi, "_|");
txt = txt.replace(/k/gi, "|<");
txt = txt.replace(/l/gi, "1");
txt = txt.replace(/m/gi, "|\\/|");
txt = txt.replace(/n/gi, "|\\|");
txt = txt.replace(/o/gi, "0");
txt = txt.replace(/p/gi, "|>");
txt = txt.replace(/q/gi, "()_");
txt = txt.replace(/r/gi, "2");
txt = txt.replace(/s/gi, "5");
txt = txt.replace(/t/gi, "7");
txt = txt.replace(/u/gi, "|_|");
txt = txt.replace(/v/gi, "\\/");
txt = txt.replace(/w/gi, "\\/\\/");
txt = txt.replace(/x/gi, "><");
txt = txt.replace(/y/gi, "`/");
txt = txt.replace(/z/gi, ">_");
txt = txt.replace(/\n/g, "</br>");
document.getElementById('leet').innerHTML = txt;

Voila precisement le code JavaScript

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Zorro le Mar 17 Jan 2012 - 12:15

Oui pardon, je voulais parler d'attribut "class".

Utilisé plutôt
Code:
<div class="leet"> Bonjour </div>




Règles Générales du Forum - Le Staff de ForumActif
Questions & Réponses Fréquentes - Trucs & Astuces
Outils Fondateurs - Perte de Mot de Passe


Zorro
Dévactif
Dévactif

Masculin
Messages : 1945
Inscrit(e) le : 05/12/2006

https://fr.wikipedia.org/wiki/Guy_Williams_(acteur)
Zorro a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Mar 17 Jan 2012 - 12:21

Je ne comprends pas bien, vous voulez dire faire ceci plutot (en ayant evidemment change aussi le id=leet par class=leet):

Code:
txt = document.getElementsByClassName('leet').innerHTML;

Car cela ne fonctionne pas plus (ce qui me semble logique, vu que si ca ne fonctionne pas en recuperant l'objet par son id ca ne fonctionnera pas plus avec sa class), c'est juste ici que le script s'execute avant (vu que le script est present dans le header du HTML) que la div soit chargee, donc forcement au moment ou le code JS est appele, il n'y a aucune div a modifier ...

(d'ou ma necessite d'avoir mon script integre dans ma div comme je l'avais fait ... Sad)

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Mer 18 Jan 2012 - 11:26

Up

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Jeu 19 Jan 2012 - 9:57

Up

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par zz10 le Jeu 19 Jan 2012 - 10:56

Bonjour,
Il faut utiliser la class et non l'id, ce qui donne en javascript :

Code:
$(function(){
   $(".leet").each(function(){      
      var txt = $(this).html();
      //txt = txt.substring(0, txt.length - 31);
      txt = txt.replace(/a/gi, "4");
      txt = txt.replace(/b/gi, "8");
      txt = txt.replace(/c/gi, "<");
      txt = txt.replace(/d/gi, "[)");
      txt = txt.replace(/e/gi, "3");
      txt = txt.replace(/f/gi, "|=");
      txt = txt.replace(/g/gi, "6");
      txt = txt.replace(/h/gi, "#");
      txt = txt.replace(/i/gi, "!");
      txt = txt.replace(/j/gi, "_|");
      txt = txt.replace(/k/gi, "|<");
      txt = txt.replace(/l/gi, "1");
      txt = txt.replace(/m/gi, "|\\/|");
      txt = txt.replace(/n/gi, "|\\|");
      txt = txt.replace(/o/gi, "0");
      txt = txt.replace(/p/gi, "|>");
      txt = txt.replace(/q/gi, "()_");
      txt = txt.replace(/r/gi, "2");
      txt = txt.replace(/s/gi, "5");
      txt = txt.replace(/t/gi, "7");
      txt = txt.replace(/u/gi, "|_|");
      txt = txt.replace(/v/gi, "\\/");
      txt = txt.replace(/w/gi, "\\/\\/");
      txt = txt.replace(/x/gi, "><");
      txt = txt.replace(/y/gi, "`/");
      txt = txt.replace(/z/gi, ">_");
      txt = txt.replace(/\n/g, "</br>");
      $(this).html(txt);
   });
});

zz10
+ Hyperactif +

Masculin
Messages : 2202
Inscrit(e) le : 04/07/2009

http://www.forum-ice-epinal.com
zz10 a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes le Jeu 19 Jan 2012 - 11:08

Merci beaucoup! Cela fonctionne parfaitement!

Par contre j'aimerais bien qu'on m'explique c'est quoi cette histoire de $ en javascript ???? scratch

Mattashes
Nouveau membre

Messages : 21
Inscrit(e) le : 11/07/2011

http://wol-bs.alianceforum.com/
Mattashes a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: Javascript et censure des mots

Message par zz10 le Jeu 19 Jan 2012 - 11:46

C'est un selecteur jQuery qui est lui même un plugin de javascript qui permet d'écrire moins pour faire plus Wink Le must quoi !


exécute le code quand le body est prêt
Code:
$(function(){

});

parcourt tous les objets html ayant pour classe .leet
Code:
$(".leet").each(function(){   

});

zz10
+ Hyperactif +

Masculin
Messages : 2202
Inscrit(e) le : 04/07/2009

http://www.forum-ice-epinal.com
zz10 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