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

 


Dernière réponse
Sujet : (D)HTML + layers + netscape
Krapaud non ça y est c'est bon, j'avais effectivement foiré mes chaines, il me manquait des ';'!
 
Merci bcp :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Krapaud non ça y est c'est bon, j'avais effectivement foiré mes chaines, il me manquait des ';'!
 
Merci bcp :)
petoulachi ha ? quelle erreur ?
donne aussi ton code en complet, js deconne souvent avec les chaines de caracteres et les ' et les " .
Krapaud

petoulachi a écrit a écrit :

 
ok. Bin logiquement, ce que je t'ai donné plus haut permet de faire des actions differentes suivant les navigateurs.. Une petite precision s'impose qd meme ; il est obligatoire de respecter l'ordre des conditions:

Code :
  1. if (dom)
  2.    {
  3.    }
  4.    else if (ie4) 
  5.    {
  6.    }
  7.    else if (ns4)
  8.    {
  9.    }


Car : dom correspond a IE5 (ou +) et NS 6 (ou plus).  
mais IE correspond a IE4 (ou -) ET IE5 (ou +)
et il en est de meme pour ns4 avec NS6.
 
Donc il faut bien faire des else if, sinon il arrive que ça aille dans deux conditions...  




 
oui ça j'ai bien compris le principe, mais mon problème est pour la phase suivante :  
 
en fait ce que je veux savoir c'est comment définir après la detection du navigateur, les attributs qui setont utilisés pour l'affichage de la page :  
ainsi on utilisera div pour IE et layer pour Netscape...
 
faut bien que je spécifie ça qqpart et c'est là mon problème : si je crées une balise <variable1 visibility:'attribut1' attribut2:'calque' ...>
 
et que plus tot dans la page j'ai défini :  
 
if (dom)  
  {  
variable1 = div
...
  }  
  else if (ie4)    
  {  
variable1 = div
...
  }  
  else if (ns4)  
  {  
variable1 = layer
...
  }
 
 
 
alors j'ai une erreur d'execution...

 

[jfdsdjhfuetppo]--Message édité par krapaud--[/jfdsdjhfuetppo]

Krapaud

Cherrytree a écrit a écrit :

 
 
Tu l'as dit ! Faut dire je traine tout le temps du côté de chez gilou. Ma grande passion c'est Java. Désolé de ne pouvoir t'aider. :sweat:  




 
pas grave ;)
 
 :jap:

petoulachi

krapaud a écrit a écrit :

bah en fait je veux que dans le cas ou c'est IE comme navigateur j'ai cette balise qui soit affichée :  
 
<div id="perso" style="visibility:hidden;position:absolute></div>
 
mais que dans le cas ou c'est netscape j'ai ça :  
 
<layer name="perso" style="visibility:hide;position:absolute></layer>
 
 
ce qui implique donc que ces éléments soient des variables définies lors de la detection du navigateur.  




ok. Bin logiquement, ce que je t'ai donné plus haut permet de faire des actions differentes suivant les navigateurs.. Une petite precision s'impose qd meme ; il est obligatoire de respecter l'ordre des conditions:

Code :
  1. if (dom)
  2.    {
  3.    }
  4.    else if (ie4) 
  5.    {
  6.    }
  7.    else if (ns4)
  8.    {
  9.    }


Car : dom correspond a IE5 (ou +) et NS 6 (ou plus).  
mais IE correspond a IE4 (ou -) ET IE5 (ou +)
et il en est de meme pour ns4 avec NS6.
 
Donc il faut bien faire des else if, sinon il arrive que ça aille dans deux conditions...

Cherrytree

krapaud a écrit a écrit :

:hello: hello!
 
ça faisait drôlement longtemps!  




 
Tu l'as dit ! Faut dire je traine tout le temps du côté de chez gilou. Ma grande passion c'est Java. Désolé de ne pouvoir t'aider. :sweat:

Krapaud bah en fait je veux que dans le cas ou c'est IE comme navigateur j'ai cette balise qui soit affichée :  
 
<div id="perso" style="visibility:hidden;position:absolute></div>
 
mais que dans le cas ou c'est netscape j'ai ça :  
 
<layer name="perso" style="visibility:hide;position:absolute></layer>
 
 
ce qui implique donc que ces éléments soient des variables définies lors de la detection du navigateur.
petoulachi

krapaud a écrit a écrit :

excellent!
 
par contre j'ai une erreur quand je spécifie une balise comme une variable.
 
si par exemple je dis :  
if var=ns4
calque=layer;
et que j'ai plus loin une balise je ne sais comment lui dire que la balise aura pour attribut ce que j'ai passé en variable un peu plus haut dans mon script.  




je pige pas ?

Krapaud

petoulachi a écrit a écrit :

et je rajoute le bout de code manquant :

Code :
  1. <a name="ancrage" id="ancre">
  2. <div id="perso" style="visibility:hidden;position:absolute></div></a>


 
voila, en mettant cette ancre dans ta cellule, ça doit marcher ! (il faut faire gaffe a l'id que tu te serts, ici c'etait "ancre" pour l'anchor, et "perso" pour la balise div.  




 
oui ça c'est nikel en effet!
 
Merci bcp :) :jap:  :jap:

Krapaud excellent!
 
par contre j'ai une erreur quand je spécifie une balise comme une variable.
 
si par exemple je dis :  
if var=ns4
calque=layer;
et que j'ai plus loin une balise je ne sais comment lui dire que la balise aura pour attribut ce que j'ai passé en variable un peu plus haut dans mon script.
petoulachi et je rajoute le bout de code manquant :

Code :
  1. <a name="ancrage" id="ancre">
  2. <div id="perso" style="visibility:hidden;position:absolute></div></a>


 
voila, en mettant cette ancre dans ta cellule, ça doit marcher ! (il faut faire gaffe a l'id que tu te serts, ici c'etait "ancre" pour l'anchor, et "perso" pour la balise div.

petoulachi

krapaud a écrit a écrit :

bon il ne me reste plus qu'à mettre tout ça en place!
 
je vais essayer de faire un script de detection du brwoser et de gestion des balises <div> ou <layer> en fonction, et d'y appliquer les javascript sus-mentionnés.
 
si vous avez des astuces... :)
 
 :jap:  :jap:  :jap:  :jap:  :jap:  




pour faire en fonction du browser :

Code :
  1. var ns4 = (document.layers)? true:false;         //NS 4
  2. var ie4 = (document.all)? true:false;         //IE 4
  3. var dom = (document.getElementById)? true:false;   //NS 6 ou IE 5


et je m'en sert dans les scripts que je t'ai filé plus haut. He oui, ce que je t'ai passé marche pour IE4, IE5 ou + et NS6, et NS4.5 !

Krapaud :hello: hello!
 
ça faisait drôlement longtemps!
Cherrytree Bonjour monsieur krapaud. :hello:
Krapaud bon il ne me reste plus qu'à mettre tout ça en place!
 
je vais essayer de faire un script de detection du brwoser et de gestion des balises <div> ou <layer> en fonction, et d'y appliquer les javascript sus-mentionnés.
 
si vous avez des astuces... :)
 
 :jap:  :jap:  :jap:  :jap:  :jap:
petoulachi

krapaud a écrit a écrit :

 
 
 
excellent!
 
merci bcp c'est très cool!  




 :jap:

Krapaud

petoulachi a écrit a écrit :

Bon voila un code javacript (pas trop trié, desole là j'ai pas le tps) qui permet de mettre un div sur une ancre (anchor). En fait, il faut mettre une balise <a> dans ta cellule de tableau, et ton div ira se mettre dessus :

Code :
  1. //Fonction permettant de positionner un DIV à une position occupée par une ancre
  2. function setToAnchor(ID_Anchor,Name_Anchor,ID_Div)
  3. {
  4. var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page  
  5. var DivTop = 0;   //Position du Div par rapport au haut de la page  
  6.     if (dom)
  7.     {
  8.         pos = document.getElementById(ID_Anchor);
  9.         DivLeft = getLeft(pos);
  10.         DivTop = getTop(pos);
  11.         document.getElementById(ID_Div).style.left = DivLeft;
  12.         document.getElementById(ID_Div).style.top = DivTop;
  13.     }
  14.     else if (ie4)
  15.     {
  16.         pos = document.all[ID_Anchor];
  17.         DivLeft = getLeft(pos);
  18.         DivTop = getTop(pos);
  19.         document.all[ID_Div].style.posLeft = DivLeft;
  20.         document.all[ID_Div].style.posTop = DivTop;
  21.     }
  22.     else if (ns4)
  23.     {
  24.         pos = document.anchors[Name_Anchor];
  25.         DivLeft = pos.x;
  26.         DivTop = pos.y;
  27.         document.layers[ID_Div].pageX = DivLeft;
  28.         document.layers[ID_Div].pageY = DivTop;
  29.     }
  30. }
  31. //Fonction permettant de connaître la position d'un objet
  32. //par rapport au bord gauche de la page.
  33. //Cet objet peut être à l'intérieur d'un autre objet.
  34. function getLeft(MyObject)
  35. {
  36.     if (MyObject.offsetParent)
  37.         return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
  38.     else
  39.         return (MyObject.offsetLeft);
  40. }
  41. //Fonction permettant de connaître la position d'un objet
  42. //par rapport au bord haut de la page.
  43. //Cet objet peut être à l'intérieur d'un autre objet.
  44. function getTop(MyObject)
  45. {
  46.     if (MyObject.offsetParent)
  47.         return (MyObject.offsetTop + getTop(MyObject.offsetParent));
  48.     else
  49.         return (MyObject.offsetTop);
  50. }
  51. //ancre les divs à la meme position que l'ancre <a></a>
  52. function ancre()
  53. {
  54.     setToAnchor('ancre','ancrage�
  55. 39;,'perso');
  56. setToAnchor('ancre','ancrage&#
  57. 039;,'education');
  58. setToAnchor('ancre','ancrage&#
  59. 039;,'projects');
  60. setToAnchor('ancre','ancrage&#
  61. 039;,'publications');
  62. setToAnchor('ancre','ancrage&#
  63. 039;,'experience');
  64. }


 
et si j'ai bon souvenir, je l'avais trouvé sur www.toutjavascript.com
 
En tout cas, bonne chance dans ta lutte avec netscape !  :hello:  




 
 
excellent!
 
merci bcp c'est très cool!

petoulachi Bon voila un code javacript (pas trop trié, desole là j'ai pas le tps) qui permet de mettre un div sur une ancre (anchor). En fait, il faut mettre une balise <a> dans ta cellule de tableau, et ton div ira se mettre dessus :

Code :
  1. //Fonction permettant de positionner un DIV à une position occupée par une ancre
  2. function setToAnchor(ID_Anchor,Name_Anchor,ID_Div)
  3. {
  4. var DivLeft = 0;   //Position du Div par rapport au côté gauche de la page  
  5. var DivTop = 0;   //Position du Div par rapport au haut de la page  
  6.     if (dom)
  7.     {
  8.         pos = document.getElementById(ID_Anchor);
  9.         DivLeft = getLeft(pos);
  10.         DivTop = getTop(pos);
  11.         document.getElementById(ID_Div).style.left = DivLeft;
  12.         document.getElementById(ID_Div).style.top = DivTop;
  13.     }
  14.     else if (ie4)
  15.     {
  16.         pos = document.all[ID_Anchor];
  17.         DivLeft = getLeft(pos);
  18.         DivTop = getTop(pos);
  19.         document.all[ID_Div].style.posLeft = DivLeft;
  20.         document.all[ID_Div].style.posTop = DivTop;
  21.     }
  22.     else if (ns4)
  23.     {
  24.         pos = document.anchors[Name_Anchor];
  25.         DivLeft = pos.x;
  26.         DivTop = pos.y;
  27.         document.layers[ID_Div].pageX = DivLeft;
  28.         document.layers[ID_Div].pageY = DivTop;
  29.     }
  30. }
  31. //Fonction permettant de connaître la position d'un objet
  32. //par rapport au bord gauche de la page.
  33. //Cet objet peut être à l'intérieur d'un autre objet.
  34. function getLeft(MyObject)
  35. {
  36.     if (MyObject.offsetParent)
  37.         return (MyObject.offsetLeft + getLeft(MyObject.offsetParent));
  38.     else
  39.         return (MyObject.offsetLeft);
  40. }
  41. //Fonction permettant de connaître la position d'un objet
  42. //par rapport au bord haut de la page.
  43. //Cet objet peut être à l'intérieur d'un autre objet.
  44. function getTop(MyObject)
  45. {
  46.     if (MyObject.offsetParent)
  47.         return (MyObject.offsetTop + getTop(MyObject.offsetParent));
  48.     else
  49.         return (MyObject.offsetTop);
  50. }
  51. //ancre les divs à la meme position que l'ancre <a></a>
  52. function ancre()
  53. {
  54.     setToAnchor('ancre','ancrage�
  55. 39;,'perso');
  56. setToAnchor('ancre','ancrage&#
  57. 039;,'education');
  58. setToAnchor('ancre','ancrage&#
  59. 039;,'projects');
  60. setToAnchor('ancre','ancrage&#
  61. 039;,'publications');
  62. setToAnchor('ancre','ancrage&#
  63. 039;,'experience');
  64. }


 
et si j'ai bon souvenir, je l'avais trouvé sur www.toutjavascript.com
 
En tout cas, bonne chance dans ta lutte avec netscape !  :hello:

youdontcare :??: tu copies colles le code du <div>, tu le remplis de texte, et hop :)
MrTonio Zavé pas un site ou je peux voir ca ???? (les scrols)
 
 :jap:
Krapaud youdontcare->merci!!! :jap:  
 
bon pour le div c'est nikel pour IE, en fait j'avais déjà, mais ça ne marche pas avec les versions antérieurs de netscape parce qu'elles ne gèrent que les layers, et pas les div :/
 
mais merci bcp pour le reste.
youdontcare testé sous netscape 6 :  
 
>> comment gérer le scroll dans un layer compatible netscape en cas de débordement (taille du layer spécifique et contenu plus large)  
 
<div style='width: 200px; height: 300px; overflow: scroll;'>
  ton texte ...
</div>
 
>> comment fixer un layer dans une cellule d'un tableau? (IE & netscape)  
 
cf ta réponse plus haut, ça peut se faire en javascript, en fixant la taille de l'élément à celle de la cellule (cellule.offsetWidth, cellule.offsetHeight)
 
>> comment récupérer la valeur des coordonnées de la barre de scroll à un emplacement donné?  
 
window.pageXOffset, window.pageYOffset
 
//
 
si ça doit être compatible < netscape 6, aucune idée.
Krapaud :D  
 
en fait que j'explique un peu ma position avec netscape ;) c'est pour un site qui sera vu à 99% par des navigateurs tournant sur linux, donc majoritairement du netscape.
 
Pour les scrollbars dans les frame avec netscape j'avais vu le concept du javascript : http://developer.netscape.com/docs [...] crollable/
 

Citation :

<script language=Javascript1.2 src=scrollable.js></script>
<layer src="http://home.netscape.com/"  
       clip=300,200 top=50 left=100  
       name=homepage ></layer>  
<script language=javascript1.2 >  
  c= new Scrollable(document.homepage);  
</script>


 
mais que je n'arrive pas à faire fonctionner :/
 
Ensuite mes cellules de tableaux sont fixe, ce qui réduit les emmerdes, mais le problème est que j'ai tjrs un positionnement relatif ou un peu foireux qui fait que le layer bouge en fonction de la résolution d'écran par ex, ou du redimmensionnement de la page...
 
voila!
 
 :hello:  
 
mais merci pour ton brin de réponse ;)

MrTonio 1\ Pour foutre une scroll bar dans un layer ... bah tu peux toujours rever. Sinon tu peux toujours des IFRAME mais je crois que ca marche pas avec netscape ...  :sweat:  
 
2\ Tu fais chier ... OoOps ma langue a fourchée (je déconne bien sûr  :ange: ) réflechissons un peu .... Si la taille de la cellule est dynamique ca va etre chaud. Mais si elle est fixe, ben c tout con : il suffit de mettre la meme taille pour le layer et la cellule. Sinon essaye de mettre 100% pour la taille de ton layer, je sais pas si ca marche et pis ca me fait chier d essayer !
 
3\ Arrete de prendre la tete avec netscape  :D  
 
Walla :hello:
Krapaud tjrs personne :/
Krapaud :bounce:
Krapaud c'est agréable ça!
 
dreamweaver ne gère pas ces évènements pour netscape!
Dost67 Bon je n'ai pas envi de chercher à ta place mais je sais que y'a quelques temps (2 ans disons) j'avais étudié le code que Dreamweaver faisait pour les Layers et c'est comme ça que j'ai appris. Donc si personne te répond tu vois avec DW.
Krapaud :bounce:
Krapaud

youdontcare a écrit a écrit :

1) pas compris. par ex afficher une scrollbar dans un div ?
 
2) pas compris non plus. mettre un layer en position absolue ?
 
3) sous ie, document.body.scrollTop  




 
1/ non dans un layer
2/ non fixer un layer dans une cellule d'un tableau  
j'ai une cellule, dedans je mets un layer, je veux que le layer fasse la taille de la cellule et qu'il soit toujours dans la cellule, sans débordement ou quoi que ce soit.
3/

Citation :

Sujet : (D)HTML + layers + netscape

Krapaud

French_Phoenix a écrit a écrit :

En javascript ma crapouille, mais ca fait une paye que j'en ai pu fait et la je ne connait pu du tout les nom des objets concerné :(  




 
oui je sais qu'il faut du script mais c'est ce qui me manque!

youdontcare 1) pas compris. par ex afficher une scrollbar dans un div ?
 
2) pas compris non plus. mettre un layer en position absolue ?
 
3) sous ie, document.body.scrollTop
French_Phoenix En javascript ma crapouille, mais ca fait une paye que j'en ai pu fait et la je ne connait pu du tout les nom des objets concerné :(
Krapaud :bounce:
Krapaud s'il vous plait?
Krapaud bonjour :  
qq petites quesions :  
 
- comment gérer le scroll dans un layer compatible netscape en cas de débordement (taille du layer spécifique et contenu plus large)
 
- comment fixer un layer dans une cellule d'un tableau? (IE & netscape)
 
- comment récupérer la valeur des coordonnées de la barre de scroll à un emplacement donné?
 
 
 :jap:

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