Comment écrire un code html dans un textbox ? [Résolu]

Signaler
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010
-
mdemo
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010
-
Bonjour,

Je souhaite afficher le code complet d'un iframe dans une page, du genre " id="test" etc....

Ce code est généré dynamiquement, et l'objectif est que les visiteurs du site puissent le copier en le sélectionnant.

Je l'ai mis dans un textbox, avec enabled=false, et tout se passe bien dans IE. Le enabled est à false afin d'éviter l'erreur qui dit que l'on cherche à exécuter un script...

Mais dans firefox la sélection est impossible, donc il me faut une autre solution.

Avez-vous une idée ?

Un server.htmlencode transforme le code donc ne me convient pas. J'ai aussi pensé à ajouter un bouton copier dans le clipboard, mais là encore ça n'a pas l'air simple avec firefox...

Merci d'avance.

8 réponses

Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
ValidateRequest permet juste d'éviter qu'on enregistre et affiche du texte contenant du script javascript ... du moment que tu n'affiches pas le texte que l'utilisateur peut saisir il n'y a aucun soucis.

Pour afficher du texte dans un div c'est tout con :

Cyril - MVS - MCP
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
Bonjour,

je n'ai pas trop compris ce que tu cherches à faire ? pourquoi un server.htmlencode ne te convient pas ? c'est normal qu'il transforme le code en fait il remplace les caractères spéciaux par exemple > vers > dans la source HTML mais en rendu tu verras bien un > ca évite que le navigateur interprete le signe comme un début de balise HTML ...

<hr />Cyril - MVS - MCP
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

Bonjour Cyril,

Je comprends bien l'intérêt du htmlencode mais dans mon cas je souhaite donner la possibilité de copier le code exact d'un iframe.
Regarde par exemple youtube : pour chaque video tu as le code qu'il te suffit de coller sans aucune modif, par exemple:

<object width="425" height="350">

http://www.youtube.com/v/12PsUW-8ge4">

name="wmode" value="transparent">

</object>

Idem daylimotion qui le donne dans un div.

Je te rassure mon appli n'a aucun rapport, mais le principe est identique de ce point de vue.

Un validaterequest à false doit faire l'affaire, mais je ne suis pas fana.

As-tu une idée ?

Merci.
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
Je comprend pas quel est le problème !

latextbox.text = "<object width="425" height="350">http://www.youtube.com/v/12PsUW-8ge4">

name="wmode" value="transparent">

http://www.youtube.com/v/12PsUW-8ge4]" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></object>";

La propriété text est automatiquement htmlencodé, et ca fera comme sur youtube & co, qu'est-ce qui ne te convient pas la dedans ?

<hr />Cyril - MVS - MCP
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

C'est exactement ce que je fais, et en effet ça s'affiche correctement sauf que au prochain aller-retour serveur tu te retrouves avec :

Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client (ctl00$ContentPlaceHolder1$TxtBxIF="

D'où le enabled=false qui évite ça parfaitement, mais je ne peux alors sélectionner le texte que dans IE et pas dans Firefox.

Et d'où aussi la solution radicale de mettre le validaterequest à false.

Ou suis-je complètement à côté de la plaque ?
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17
tu peux aussi mettre ton texte dans un div que tu modifies en CSS pour qu'il soit plus joli :-) et vu que tu n'auras plus de champs formulaire tu n'auras pas ce message. Mais désactiver le validateRequest n'est pas une chose horrible je le fais sur quasi tout mes sites, il suffit de savoir ce qu'on fait derriere.

<hr />Cyril - MVS - MCP
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

Merci Cyril pour tes conseils, mais sous quelle forme mets-tu le texte dans un Div ? Le texte est généré côté serveur, et j'ai déjà essayé avec un label, mais sans succès.
 
Concernant l'annulation du validateRequest, peux-tu me confirmer qu'à partir du moment où il n'y a aucune zone de saisie dans la page il n'y a aucun risque dans d'un point de vue attaque que dysfonctionnement ? (ça me semble évident mais j'aimerais en avoir la confirmation).

Merci.
Messages postés
90
Date d'inscription
mardi 21 mars 2006
Statut
Membre
Dernière intervention
10 mai 2010

En fait je viens de réessayer avec le label et ça marche à partir du moment où fait le htmlencode.
Ta solution avec le literal marche impeccable aussi.

Mon erreur était de penser que le htmlencode allait modifier l'apparence du texte à l'affichage. C'est d'ailleurs le cas quand on voit le source de la page, car c'est le but du jeu,  mais à l'affichage le texte est effectivement décodé et réapparait correctement, sans provoquer d'erreur.

Encore merci pour ton aide.