Avatar billede plyster Nybegynder
16. oktober 2001 - 14:06 Der er 5 kommentarer og
1 løsning

tekstlayers i tabel

Jeg skal have udskiftet tekst i en tabel, og kan fint få eksemplet fra dansteinman.dk med innerHTML og layers til at virke, men når jeg placerer et layer inde i en tabel, virker det ikke i Netscape.

Hvad skal der til for at det fungerer?
Avatar billede jakoba Nybegynder
16. oktober 2001 - 14:18 #1
må vi se den kode der ikke virker?
Avatar billede plyster Nybegynder
16. oktober 2001 - 14:26 #2
Gerne. Her er hele molevitten :-)

<html>
<head>
    <title>Untitled</title>
    <script>
  function layerWrite(id,nestref,text) {
            ns4 = (document.layers)? true:false
          ie4 = (document.all)? true:false
 
    if (ns4) {
   
        var lyr = (nestref)? eval(\'document.\'+nestref+\'.document.\'+id+\'.document\') : document.layers[id].document
        lyr.open()
        lyr.write(text)
        lyr.close()
    }
    else if (ie4) document.all[id].innerHTML = text
}
</script>
<STYLE TYPE=\"text/css\">
<!--
.white {color:white;}
#blueDiv {
position:relative; left:0; top:200; width:100; height:30;  background-color:#004080;
}
#redDiv {
position:relative; left:0; top:100; width:100; height:20;  background-color:red;
}
-->
</STYLE>

</head>
<body>
blue:
<A HREF=\"java script:layerWrite(\'blueDiv\',\'tabellen\',\'<SPAN CLASS=\\\'white\\\'>good-bye</SPAN>\')\">\"skift blå goodbye\"</A>
<A HREF=\"java script:layerWrite(\'blueDiv\',\'tabellen\',\'<SPAN CLASS=\\\'white\\\'>hello</SPAN>\')\">\"skift blå hello\"</A>
<BR>red:
<A HREF=\"java script:layerWrite(\'redDiv\',\'null\',\'good-bye\')\">\"good-bye\"</A>
<A HREF=\"java script:layerWrite(\'redDiv\',\'null\',\'hello\')\">\"hello\"</A>
</DIV>
<table name=\"tabellen\" align=\"center\">
<tr>
  <td>
  <DIV ID=\"blueDiv\">blå grundtekst</DIV>
  </td>
</tr>
  <tr>
  <td>
<DIV ID=\"redDiv\">rød grundtekst</DIV>
  </td>
</tr>
</table>
</body>
</html>
Avatar billede jakoba Nybegynder
16. oktober 2001 - 14:44 #3
I NS kan du kun skrive til en absolut placeret <div

prøv med:
#redDiv {
position:absolute; left:0; top:100; width:100; height:20;  background-color:red;
}

den kommer til et ligge et helt forkert sted, men så kan du skrive i den

og det er kun de absolut placerede lag der behøver et ekstra .document.id lag så for at adressere den siger du blot:

        var lyr = (nestref)? document.layers[id].document : document.layers[id].document

mvh JakobA
Avatar billede plyster Nybegynder
17. oktober 2001 - 13:03 #4
problemet er jo bare som altid at få NS og IE til at placere teksten ens, og det løses ikke af at bruge \"absolute\" layers, da NS og IE ikke placerer disse ens. Er der ingen anden måde at få udskiftet teksten i et felt, end at bruge layers i NS?
Avatar billede jakoba Nybegynder
17. oktober 2001 - 13:13 #5
Den løsning jeg oftest bruger er at lave et gennemsigtigt billede der hvor lavet skal være.

ved onload kan man så kikke på hvor det billede er blevet placeret på siden og placere laget samme sted. Det er lidt klumset men pænt crossbrowser :)
demo: http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp93955.html
der bruges det til en mousover effekt. men metoden er den samme.

mvh JakobA
Avatar billede jakoba Nybegynder
17. oktober 2001 - 13:14 #6
Ups  \'der hvor lavet\' -> \'der hvor laget\'
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester