un code qui marche sous ie5.5 mais pas sous ie6

un code qui marche sous ie5.5 mais pas sous ie6 - HTML/CSS - Programmation

Marsh Posté le 30-07-2003 à 15:58:59    

voilà j'ai une iframe avec un contenu editable"(contenteditable="true" ) à l'interieur de cette iframe j'ai un tableau qui appelle un script quand on clique dessus  
donc quand on clique dessus (sur le tableau) dans ie5.5 ça marche  cool par contre dans ie6 ça marche plus :??: c bizarre ça apparement ça vient du fait que la sécu dans ie6 est renforcée comment je peux contourner le pb plz :lol:

Reply

Marsh Posté le 30-07-2003 à 15:58:59   

Reply

Marsh Posté le 30-07-2003 à 16:01:44    

Tiens, t'as fais un nouveau topic ?
 
Qu'est ce qui se passe sans iframe ?
 
Le code JS il est délaré à quel endroit ?
 
Montre un bout de code qui marche dans ie 5.5 et pas dans ie 6.0.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-07-2003 à 16:08:30    

ben un bout de code c'est tendu c pas très clair tiens regarde
function creation_tableau (colonne,ligne,couleur){
             try{
                opener.frames ['frame_HTML'].focus ();
                var selection =opener.frames ['frame_HTML'].document.selection.createRange ();
 
                //generer le tablo en fct du nb colonnes/lignes
                if (couleur!="" ) {
                    lacouleur = "#"+couleur;
                    bordure=" BORDER=1 BORDERCOLOR=\""+lacouleur+"\" ";
                    } else { bordure=" border=0 ";  }
 
                var tablo = "<TABLE "+bordure+" CELLPADDING=0 CELLSPACING=0 cols="+colonne+" OnControlSelect=\"window.parent.document.test2.index.value=this.sourceIndex;window.parent.document.test2.couleur.value=this.borderColor;window.parent.document.test2.col.value=this.cols;\">";
                for (i=1;i<ligne+1;i++) {
                     tablo+= "<TR>";
                     for (j=1;j<colonne+1;j++) {
                          tablo+= "<TD>cellule</TD>";
                     }
                     tablo+= "</TR>";
                }
                tablo+= "</TABLE>";
 
                selection.pasteHTML(tablo);//je colle le code du tableau dans l'iframe;
                selection.select();
                selection = opener.frames ['frame_HTML'].document;
                opener.frames ['frame_HTML'].focus();
                alert("Vous pouvez redimensionner votre tableau :\nsélectionnez le tableau en cliquant sur un des coins du tableau, des curseurs de redimensionnement apparaissent.\n\nVous pouvez intégrer un tableau dans la cellule d'un autre tableau : \nPositionnez le curseur dans la cellule du tableau 1 et ajoutez le tableau 2." );
             }
             catch (exCaughtException){
                 }
             return;
}
 
donc dans mon iframe apparait le tableau mais lorsque je clique dessus si je suis dans ie 5.5 mes champ de texte prennent bien les valeurs que je veux :love:  :love:  
si je suis dans ie 6 ça marche pas le script s'execute pas :pt1cable:  :pt1cable:

Reply

Marsh Posté le 30-07-2003 à 16:17:54    

Essaye avec du vrai Javascript :
 
- Onclick au lieu de OnControlSelect
- utilise les fonctions du genre getElementById()
- Ne fait pas de racourçi : "this.borderColor" devient "this.style.borderColor"
 
Quand je demande "un bout de code qui marche dans ie 5.5 et pas dans ie 6.0." je parle d'un exemple reproductible par tous.
Là y faut deviner ce qu'il y a autour, le reconstruire et faire des tests. Autant dire que je ne vais pas le faire.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-07-2003 à 16:26:14    

j'ai déjà essayer avec onclick ça marche pas non plus... le pb c'est que ça genere pas d'erreur ça l'ignore totalement j'essaye avec get elementbyid

Reply

Marsh Posté le 30-07-2003 à 16:42:03    

en fait ma couleur de brdure n'est pas à l'interieure d'un style....

Reply

Marsh Posté le 31-07-2003 à 14:30:24    

<iframe width=100% src="mid.htmlname="frame_texte" id="frame_HTML" contenteditable=true width="300" height="200" class="texte_HTML" style="color: #4382C0; font-family: Arial, Geneva,  Helvetica; font-size=12 px; border:1 solid #D4DCEB"></iframe>  
ça c le code de mon iframe
voici le code de mid.html
<html>
<body>
 
<TABLE>
onClick="window.parent.document.test2.index.value=this.sourceIndex" borderColor=#aa66cc  
 
cellSpacing=0 cellPadding=0 border=1>
 
<TBODY>
<TR>
<TD>cellule</TD>
<TD>cellule</TD></TR>
<TR>
<TD>cellule</TD>
<TD>cellule</TD></TR></TBODY></TABLE>qzq<FONT color=#558866>  
 
 
</body>
</html>
 
ça ça marche sous ie5.5 je clique sur le tableau et ça me met la valeur qui va bien dans le bon champ de texte.
sous ie 6 ça marche pas....... autre chose dans onclick je ne peux pas mettre de fonction style alert() sinon ça ne marche pas
j'éspère que c'est plus claire..  :jap: désolé pour le retard du code............"  :jap:  :jap:

Reply

Marsh Posté le 31-07-2003 à 16:24:22    

main.html :

<hml>
<iframe width=100% src="mid.html" name="frame_texte" id="frame_HTML" contenteditable=true width="300" height="200" class="texte_HTML" style="color: #4382C0; font-family: Arial, Geneva,  Helvetica; font-size=12 px; border:1 solid #D4DCEB"></iframe>  
 
<form id="test2">
<input type="text" id="index"><br>
<input type="text" id="couleur"><br>
<input type="text" id="col"><br>
</form>
 
</html>


 
mid.html

<html>
<head>
<script>
function get_info( obj )
{
 window.parent.document.getElementById( 'index' ).value=obj.sourceIndex;
 window.parent.document.getElementById( 'couleur' ).value=obj.borderColor;
 window.parent.document.getElementById( 'col' ).value=obj.cols;
}
</script>
</head>
<body>
 
<TABLE onClick="get_info( this );" borderColor="#aa66cc" cellSpacing="0" cellPadding="0" border="1" cols="2" >
<TBODY>
<TR>
<TD>cellule</TD>
<TD>cellule</TD></TR>
<TR>
<TD>cellule</TD>
<TD>cellule</TD>
</TR>
</TBODY>
</TABLE>
 
qzq<FONT color=#558866>  
 
 
</body>
</html>


 
Ca marche très bien quand c'est bien écrit !
 
La preuve là : http://www.surleau.com/test/hobbes/main.html


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 31-07-2003 à 16:56:58    

Merci beaucoup Mara's dad pour tout le mal que tu t'es donné c'est vraiment trop cool de ta part :love:  :love:  mais je sais ce qui cloche le mode design mode était enclenché c pour ça que ça foiré... désolé....bon sinon quand tu met le design mode en on ça marche sous ie 5 mais pas sous ie 6 t'as une soluce pour ça??? désolé d'avoir oublié de donner cette info capitale excuse moi encore :(  :(

Reply

Marsh Posté le 31-07-2003 à 17:16:48    

C'est quoi le mode design ? ? ? ? ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 31-07-2003 à 17:16:48   

Reply

Marsh Posté le 01-08-2003 à 09:34:55    

le mode design c'est le mode qui permet d'éditer la page en direct il est utilisé pour les éditeur wysiwig...C pour ça que je voulais utilisé OnControSelect parceque lorsque la page n'est pas en mode design cet évènement ne peut être généré...

Reply

Marsh Posté le 01-08-2003 à 09:38:34    

Bon, et tu l'active coment ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 01-08-2003 à 10:13:47    

on l'active lors du chargement de la page html.....

Reply

Marsh Posté le 01-08-2003 à 10:16:46    

tiens regarde c cette petite fonction
 

Code :
  1. function load(){
  2.   contenuframe("frame_HTML" ).designMode = "On";
  3. }


Reply

Marsh Posté le 01-08-2003 à 10:22:02    

Code :
  1. function contenuframe(aID){
  2.     if (document.getElementById(aID).contentDocument){
  3.      return document.getElementById(aID).contentDocument;
  4.     }
  5.     else {
  6.     return document.frames[aID].document;
  7.     }
  8.   }


la balise contenuframe :ange:  :ange:

Reply

Marsh Posté le 01-08-2003 à 11:36:06    

http://msdn.microsoft.com/library/ [...] gnmode.asp
 

Citation :

You cannot execute script when the value of the designMode property is set to On.


 
Mais, c'est pas grave, j'ai la solution :
 
http://www.surleau.com/test/hobbes/main.html
 
En fait il ne faut pas mettre le designMode à on, mais il faut mettre contenteditable="true" dans le body de la frame (mid.html)
 
main.html

<html>
<head>
</head>
<body>
<iframe width=100% src="mid.html" name="frame_texte" id="frame_HTML" width="300" height="200" class="texte_HTML" style="color: #4382C0; font-family: Arial, Geneva,  Helvetica; font-size=12 px; border:1 solid #D4DCEB"></iframe>  
<form id="test2">
<input type="text" id="index"><br>
<input type="text" id="couleur"><br>
<input type="text" id="col"><br>
</form>
</body>
</html>


 
mid.html

<html>
<head>
<script>
function get_info( obj )
{
 window.parent.document.getElementById( 'index' ).value=obj.sourceIndex;
 window.parent.document.getElementById( 'couleur' ).value=obj.borderColor;
 window.parent.document.getElementById( 'col' ).value=obj.cols;
}
</script>
</head>
<body contenteditable="true">
 
<TABLE oncontrolselect="get_info( this )" borderColor="#aa66cc" cellSpacing="0" cellPadding="0" border="1" cols="2" >
<TBODY>
<TR>
<TD>cellule</TD>
<TD>cellule</TD></TR>
<TR>
<TD>cellule</TD>
<TD>cellule</TD>
</TR>
</TBODY>
</TABLE>
 
qzq<FONT color=#558866>  
 
 
</body>
</html>


 
J'ai appris plein de choses. Je suis, moi aussi en train de concevoir un site modifiable par un interface WEB.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 01-08-2003 à 11:53:16    

exact je l'ai lu aussi content que t appris qqu chose mais le truc bizarre c que le script il s'éxécute dans ie5.5..... :pfff:

Reply

Marsh Posté le 01-08-2003 à 11:55:51    

merci pour ta soluce...
 :hello:

Reply

Marsh Posté le 01-08-2003 à 12:37:09    

ben alors ça sert à quoi designMode?????? :??:  :??:

Reply

Marsh Posté le 02-08-2003 à 01:04:23    

hobbes a écrit :

ben alors ça sert à quoi designMode?????? :??:  :??:  


Aucune idée !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed