Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
815 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Existe t-il une balise qui fasse l'inverse de <noscript>

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Existe t-il une balise qui fasse l'inverse de <noscript>

n°1562230
Iori2004
Posté le 18-05-2007 à 21:41:05  profilanswer
 

Bonjour,
 
Voilà, dans la partie "soumettre une news" de mon site j'ai un éditeur de texte qui se charge de mettre du texte séléctionné entre deux balises (exp: en cliquant sur le bouton nommé "gras" =>[gras]blabla..[/gras]...). Donc comme cet éditeur est crée avec du javascript, les personnes qui n'ont pas activés le js ne pourront pas l'utiliser.
Donc au lieu de mettre un message d'alerte avec <noscript>, je préfférerais masquer l'éditeur de texte.
Existe t-il une balise qui puisse faire ce que je veut ?
 
Merci.

mood
Publicité
Posté le 18-05-2007 à 21:41:05  profilanswer
 

n°1562231
Dan_A
Posté le 18-05-2007 à 22:05:19  profilanswer
 

Les utilisateurs qui ont désactivé javascript ont l'habitude de  ce genre de problème et ils ont à leur disposition des outils (comme BBCodeXtra) qui leur permettent de faire ce qu'ils veulent.
Sinon, il suffit d'utiliser javascript (document.write) pour ne pas afficher ce qu'on veut masquer à ces utilisateurs.


Message édité par Dan_A le 18-05-2007 à 22:06:52
n°1562236
Iori2004
Posté le 18-05-2007 à 22:29:00  profilanswer
 

Tout d'abord, merci pour ta réponse.
Pour BBCodeextra, je ne pense pas que cela puisse fonctionner pour mes utilisateur puisque mes balises sont d'un format différent, par exemple moi j'utilise [gras] au lieu de [b], et en plus je n'ai qu'un nombre limité de balises possibles (url, gras, italique souligné et couleur du texte). Donc si ils en utilisent d'autres, mes regex n'en tiendront pas compte et forcement le texte ne sera pas formaté.
Sinon, pour javascript (document.write), je ne sais pas comment l'utiliser vu que je suis null en javascript et apparement c'est bien une fonction javascript. Donc, comment utiliser du javascript pour masquer quelque chose à quelqu'un qui ne l'a pas activé  :heink:  ?  
Peux tu me donner un petit exemple de "javascript (document.write)" pour voir si ca fonctionne.
Merci encore une fois  

n°1562238
Dan_A
Posté le 18-05-2007 à 22:37:47  profilanswer
 

<script type="text/javascript">
document.write("<p>Ce texte ne s'affiche qu'avec javascript activé<\/p>" );
</script>

n°1562241
Iori2004
Posté le 18-05-2007 à 22:51:01  profilanswer
 

Merci beaucoup, ca fonctionne mais seulement avec du text, mais quand je l'utilise par exmple sur un input ca ne fonctionne plus:
<script type="text/javascript">
document.write("<input type="submit" value="Aperçu" onclick="this.form.action='apercu_modif.php';this.form.submit()" />" );
</script>
 
Edit1: je viens de m'appercevoir que je n'ai pas échapé le slash qui ferme l'input. Je test et je reviens :)
Edit2: Ca ne fonctionne toujours pas, j'ai du loupé quelque chose.


Message édité par Iori2004 le 18-05-2007 à 22:54:54
n°1562312
Dan_A
Posté le 19-05-2007 à 10:45:42  profilanswer
 

Il faut échapper les guillemets doubles ou utiliser des guillemets simples dans la chaîne à afficher.

n°1562405
Iori2004
Posté le 19-05-2007 à 17:06:27  profilanswer
 

Voila c'est fait. Merci infiniment pour ton aide.

n°1562610
MacIntoc
tu lis une phrase formidable.
Posté le 20-05-2007 à 13:51:37  profilanswer
 

Code :
  1. var input=document.createElement('input');
  2. input.setAttribute('type', 'submit');
  3. input.setAttribute('value', 'submit');
  4. if(_IE){
  5.     input.attachEvent(
  6.         'onclick',
  7.         function(){
  8.             var form=window.event.srcElement.form;
  9.             form.setAttribute('action', 'apercu_modif.php');
  10.             form.submit();
  11.         }
  12.     );
  13. }else{
  14.     input.addEventListener(
  15.         'click',
  16.         function(evt){
  17.             var form=evt.target.form;
  18.             form.setAttribute('action', 'apercu_modif.php');
  19.             form.submit();
  20.         },
  21.         false
  22.     );
  23. }
  24. document.getElementByTagName('body')[0].appendChild(input);
 

C'est préférable de passer par le DOM.

Message cité 1 fois
Message édité par MacIntoc le 20-05-2007 à 13:52:03
n°1562730
gatsu35
Blablaté par Harko
Posté le 21-05-2007 à 00:49:14  profilanswer
 

MacIntoc a écrit :

Code :
  1. var input=document.createElement('input');
  2. input.setAttribute('type', 'submit');
  3. input.setAttribute('value', 'submit');
  4. if(_IE){
  5.     input.attachEvent(
  6.         'onclick',
  7.         function(){
  8.             var form=window.event.srcElement.form;
  9.             form.setAttribute('action', 'apercu_modif.php');
  10.             form.submit();
  11.         }
  12.     );
  13. }else{
  14.     input.addEventListener(
  15.         'click',
  16.         function(evt){
  17.             var form=evt.target.form;
  18.             form.setAttribute('action', 'apercu_modif.php');
  19.             form.submit();
  20.         },
  21.         false
  22.     );
  23. }
  24. document.getElementByTagName('body')[0].appendChild(input);
 

C'est préférable de passer par le DOM.

 

Encore faut-il que ton code marche sachant que le fait de setter le type d'un input fait gueuler IE5/6.
et puis en plus ton code, si fallait faire propre on ferait :

Code :
  1. var input=document.createElement('input');
  2. setType(input, "submit" );
  3. input.setAttribute('value', 'submit');
  4. addEvent(input, 'click', function() {
  5. var form=this.form; //pas besoin de passer par un quelconque event à la con sachant que Form est une référence direct au formulaire englobant le input.
  6. form.setAttribute('action', 'apercu_modif.php');
  7. form.submit();
  8. });
  9. document.body.appendChild(input); //et oui il y a aussi une référence directe au body.
  10. function addEvent( obj, type, fn ) {
  11. if (obj.addEventListener)
  12.  obj.addEventListener( type, fn, false );
  13. else if (obj.attachEvent)
  14. {
  15.  obj["e"+type+fn] = fn;
  16.  obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
  17.  obj.attachEvent( "on"+type, obj[type+fn] );
  18. }
  19. }
  20. function setType(node, type) {
  21.    try {
  22.    node.type = type;
  23.    } catch(e) {
  24.    if (node.outerHTML) {
  25.     node.outerHTML=node.outerHTML.replace(/\btype=\w+\b/,'type="text"');
  26.    }
  27.    }
  28. }
 

addEvent étant une fonction simple, utile et efficace pour ajouter des events sur les objets  que tu trouveras ici :
http://www.quirksmode.org/blog/arc [...] ner_1.html

 

setType étant une fonction que j'ai codé un peu porcasse mais efficace pour pallier au problème puisque IE plantait lorsqu'on veut setter le type d'un input.

 


et accessoirement les if(_IE) on peut s'en passer dans ton cas, il suffit de faire tout simplement :

Code :
  1. if (window.attachEvent) {
  2. input.attachEvent = [...]
  3. } else {
  4. [...]
  5. }
 


Message édité par gatsu35 le 21-05-2007 à 00:54:54

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Existe t-il une balise qui fasse l'inverse de <noscript>

 

Sujets relatifs
Tester si une image "existe" (test d'url)Selectionner une balise avec un attribut ayant deux valeur
Balise div de 100% de la hauteur sous IEUtiliser plusieurs tables plutot qu'une ou inverse ?
Balise IMG : pas de croix rougebalise marquee sous IE
Question sur la balise seectproblème avec balise iterate struts
[javascript] savoir si une variable ou un objet existe déjàFormatter une balise <input type='txt'>
Plus de sujets relatifs à : Existe t-il une balise qui fasse l'inverse de <noscript>


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR