Javascript et censure des mots

3 participants

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

Résolu Javascript et censure des mots

Message par Mattashes 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
avatar

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 bando 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
bando

bando
Dévactif
Dévactif

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

https://forum.forumactif.com
bando a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes 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
avatar

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 bando 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
bando

bando
Dévactif
Dévactif

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

https://forum.forumactif.com
bando a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes 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
avatar

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 bando Mar 17 Jan 2012 - 12:15

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

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

bando
Dévactif
Dévactif

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

https://forum.forumactif.com
bando a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Javascript et censure des mots

Message par Mattashes 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)
avatar

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 Mer 18 Jan 2012 - 11:26

Up
avatar

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 Jeu 19 Jan 2012 - 9:57

Up
avatar

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 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

zz10
Membre actif

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

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

Résolu Re: Javascript et censure des mots

Message par Mattashes 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
avatar

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 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

zz10
Membre actif

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

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

- Sujets similaires

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