Layer, IE, NS tous ensemble

Fermé
Utilisateur anonyme - 28 nov. 2001 à 12:56
 ks13 - 4 août 2006 à 15:42
Alors voila,
Je veux faire apparaître un layer quand on click sur un mot et que le faire disparaitre quand on reclique sur ce même mot.
Mon script fonctionne sous IE mais pas sous NS 4.7.

Je ne voit pas pourquoi .. pourriez vous jeter un coup d'oeil pour me dire

merci d'avance

Dans mon head je met
<script language="javascript">
function findObj(n, d)
{ //v4.0
var p,i,x;
if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);
}
if(!(x=d[n])&&d.all) x=d.all[n];
for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n);
return x;
}
var menu = 1;
function adminMenu()
{ //v3.0
if ((obj=findObj('admin'))!=null) with (obj)
{
if ( menu == 1 )
{
menu = 0;
innerHTML += ICI LE CONTENUE DE MON LAYER';
}
else if ( menu == 0 )
{
menu = 1;
innerHTML = '';
}
}
}
</script>

dans mon body

<a href="#" onClick="adminMenu();">mon appele de layer</a>
<div id="admin" style="z-index:1; visibility: visible"> </div>


-------------------------------------
..::: ZIG1 :::..
..::: zig1@free.fr :::..

4 réponses

Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
28 nov. 2001 à 17:26
Bon j'ai cherché et ton problème vient de la fonction adminMenu et du fait que Netscape 4.7 ne connait pas l'attribut "innerHTML"...

Pour remplacer il faut utiliser "layer.write(texte);" et "layer.close()" mais je ne me rappelle plus la syntaxe exacte.

Tu peux faire des recherches la dessus en tout cas.

-= Bobinours =-
0
Utilisateur anonyme
28 nov. 2001 à 18:40
je cherche, j'ai cherché ...
et j'ai trouvé une doc en espagnole dont je ne suis pas sur d'avoir tous compris puisqu'au moment de l'inserer dans mon code ca n'a pas marché...
es ce que ca marche sous IE et NS ??

..:::ZIG1:::..
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 nov. 2001 à 01:03
Salut ZIG1:
Voici un code que j'ai retrouver. Regarde si t'arrive a l'adapter:

var JSns4 = (document.layers)?true:false; //NS4
var JSie4 = (document.all)?true:false; //IE4
var JSdom = (document.getElementById)?true:false; //ie5 et ns6

if (JSdom)
{
document.getElementById(JSidSpan).style.visibility = 'visible';
document.getElementById(JSidSpan).innerHTML = contenu;
}
else if (JSie4)
{
document.all[JSidSpan].innerHTML = contenu;
}
else if (JSns4)
{
document.layers[JSidSpan].document.write(contenu);
document.layers[JSidSpan].document.close();
}

-= Bobinours =-
0
Utilisateur anonyme
29 nov. 2001 à 10:28
j'ai reussi a faire quelque chose avec mais ce n'est pas exatement ce que je voulais.

j'ai mis ton cide dans une fonction (function adminMenu(JSidSpan){})
puis j'ai insérer une variable contenu
var contenu = document.write('ici le contenue de mon layer');

alors sous NS 6, il affiche le contenu dans une page vierge, IE 5 le deboggeur arrête tous sans même donner d'explication quand a NS 4.7 ca ne marche pas et ne donne toujours pas d'explication ..

La console de NS 6 dit :
"document.getElementById(JSidSpan) has no properties"

je continue a chercher mais si quelqu'un à une idée de l'origine des probleme et surtout comment en sortir !!

Merci d'avance
..:::ZIG1:::..
P.S. : voici mon code

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../css/27-11-01.css" type="text/css">
<script language="JavaScript">
<!--
function adminMenu(JSidSpan){
var JSns4 = (document.layers)?true:false; //NS4
var JSie4 = (document.all)?true:false; //IE4
var JSdom = (document.getElementById)?true:false; //ie5 et ns6

var contenu = document.write('ici le contenue de mon layer');

if (JSdom)
{
document.getElementById(JSidSpan).style.visibility = 'visible';
document.getElementById(JSidSpan).innerHTML = contenu;
}
else if (JSie4)
{
document.all[JSidSpan].innerHTML = contenu;
}
else if (JSns4)
{
document.layers[JSidSpan].document.write(contenu);
document.layers[JSidSpan].document.close();
}
}
-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="2" topmargin="2" marginwidth="2" marginheight="2">
<table width="750" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche_1.gif" width="5" height="5"></td>
<td rowspan="2" bgcolor="#C1C4D5"><img src="../../images/spacer.gif" width="1" height="1"><a href="javascript:adminMenu('admin');" class="navig">onglet1</a></td>
<td width="6"><font color="#FFFFFF"><img src="../../images/27-11-01/angle_haut_droit_1.gif" width="5" height="5"></font></td>
</tr>
<tr>
<td bgcolor="#C1C4D5">&nbsp;</td>
<td bgcolor="#C1C4D5">&nbsp;</td>
</tr>
</table>
</td>
<td><img src="../../images/spacer.gif" width="2" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="0" bgcolor="#657FD0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche.gif" width="5" height="5"></td>
<td rowspan="2"><img src="../../images/spacer.gif" width="1" height="1"><a href="#" class="navig">onglet2</a></td>
<td width="6"><img src="../../images/27-11-01/angle_haut_droit.gif" width="6" height="5"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</td>
<td><img src="../../images/spacer.gif" width="2" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche_1.gif" width="5" height="5"></td>
<td rowspan="2" bgcolor="#C1C4D5"><img src="../../images/spacer.gif" width="1" height="1"><a href="#" class="navig">onglet3</a></td>
<td width="6"><img src="../../images/27-11-01/angle_haut_droit_1.gif" width="5" height="5"></td>
</tr>
<tr>
<td bgcolor="#C1C4D5">&nbsp;</td>
<td bgcolor="#C1C4D5">&nbsp;</td>
</tr>
</table>
</td>
<td><img src="../../images/spacer.gif" width="2" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche_1.gif" width="5" height="5"></td>
<td rowspan="2" bgcolor="#C1C4D5"><img src="../../images/spacer.gif" width="1" height="1"><a href="#" class="navig">onglet4</a></td>
<td width="6"><img src="../../images/27-11-01/angle_haut_droit_1.gif" width="5" height="5"></td>
</tr>
<tr>
<td bgcolor="#C1C4D5">&nbsp;</td>
<td bgcolor="#C1C4D5">&nbsp;</td>
</tr>
</table>
</td>
<td><img src="../../images/spacer.gif" width="2" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche_1.gif" width="5" height="5"></td>
<td rowspan="2" bgcolor="#C1C4D5"><img src="../../images/spacer.gif" width="1" height="1"><a href="#" class="navig">onglet5</a></td>
<td width="6"><img src="../../images/27-11-01/angle_haut_droit_1.gif" width="5" height="5"></td>
</tr>
<tr>
<td bgcolor="#C1C4D5">&nbsp;</td>
<td bgcolor="#C1C4D5">&nbsp;</td>
</tr>
</table>
</td>
<td><img src="../../images/spacer.gif" width="2" height="1"></td>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="5"><img src="../../images/27-11-01/angle_haut_gauche_1.gif" width="5" height="5"></td>
<td rowspan="2" bgcolor="#C1C4D5"><img src="../../images/spacer.gif" width="1" height="1"><a href="#" class="navig">onglet6</a></td>
<td width="6"><img src="../../images/27-11-01/angle_haut_droit_1.gif" width="5" height="5"></td>
</tr>
<tr>
<td bgcolor="#C1C4D5">&nbsp;</td>
<td bgcolor="#C1C4D5">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0" align="center" width="750">
<tr bgcolor="#657FD0">
<td colspan="3"><img src="../../images/spacer.gif" width="1" height="2"></td>
</tr>
<tr>
<td bgcolor="#657FD0" width="2"><img src="../../images/spacer.gif" width="2" height="1"></td>
<td height="15">
<div id="admin"></div>
</td>
<td bgcolor="#657FD0" width="2"><img src="../../images/spacer.gif" width="2" height="1"></td>
</tr>
<tr bgcolor="#657FD0">
<td colspan="3"><img src="../../images/spacer.gif" width="1" height="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" align="center" width="750">
<tr>
<td colspan="3">&nbsp;

</td>
</tr>
<tr bgcolor="#657FD0">
<td colspan="3"><img src="../../images/spacer.gif" width="1" height="2"></td>
</tr>
<tr>
<td bgcolor="#657FD0" width="2"><img src="../../images/spacer.gif" width="2" height="1"></td>
<td height="15">
<div id="admin" style="z-index:1; visibility: visible"></div>
</td>
<td bgcolor="#657FD0" width="2"><img src="../../images/spacer.gif" width="2" height="1"></td>
</tr>
<tr bgcolor="#657FD0">
<td colspan="3"><img src="../../images/spacer.gif" width="1" height="2"></td>
</tr>
</table>
</body>
</html>
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
29 nov. 2001 à 18:19
Remplace "JSidSpan" par le nom de ton layer "admin" ;o)

Je vais regarder plus en détail...

-= Bobinours =-
0
Yop, j'ai pas le temps de lire tout le post, mais si ca peut aider, voici le script que j'utilise pour afficher/cacher les layers avec un click :

function MM_shl() {
var l=MM_shl.arguments;
if(document.getElementById(l[0]).style.visibility=='hidden'){l[1]='visible'}
else{l[1]='hidden'}
document.getElementById(l[0]).style.visibility=l[1];
}

l'appel de la fonction se fait par MM_shl('nom_du_layer');
0