Avatar billede mik789 Nybegynder
03. maj 2002 - 00:51 Der er 4 kommentarer og
1 løsning

skrive til div

Jeg filer på et forsøg med at skrive til en mindre div ("reference") fra en større div ("page"). Men jeg har problemer med NS6.

her er det centrale i scriptet (samlet af stumper rundt omkring på Eksperten):

<script type="text/javascript">
var note00 = '';
var note01 = 'Dette er note1';
var note02 = 'Dette er note2';
var note03 = 'Dette er note3';

function writetoDiv(note) {
  if (document.getElementById) {
    document.getElementById('reference').innerHTML=note;
  }
  else {
    if (document.all) {
      document.all['reference'].innerHTML=note;
    }
    else {
      if (document.layers) {
        document.layers['reference'].document.open();
        document.layers['reference'].document.write(note);
        document.layers['reference'].document.close();
      }
    }
  }
}
</script>

-------

og dette står der nede i teksten i "page" div'en:

<span onmouseover="writetoDiv(note01);">Ord der skal forklares i note1</span>
<span onmouseover="writetoDiv(note02);">Ord der skal forklares i note2</span>

-----
og så også en knap der rydder "reference" div'en:

<button onclick="writetoDiv(note00);">Ryd vinduet</button>

---------

Hele koden er på www.dahr.dk/div-iframe.html

Det kører fint i IE, men i NS6 kan jeg ikke uden videre skifte fra note1 til note2. For det første er jeg nødt til at rytte reference div'en før den vil indlæse note2, for det andet er jeg nødt til at starte med note1, så rytte og så se note2 for overhovedet at se note2. Er der nogle forslag til at komme om ved dette?
Avatar billede mik789 Nybegynder
03. maj 2002 - 00:56 #1
rytte = rydde (gad vist hvorn jeg ville klare 9.klasses diktat i dag?)
Avatar billede jakoba Nybegynder
03. maj 2002 - 01:27 #2
Prøv med dette script istedet:

<script type="text/javascript">

var note = new Array(
            '',
            'Dette er note1',
            'Dette er note2',
            'Dette er note3'  // ikke komma efter sidste
                    );

//var note00 = '';
//var note01 = 'Dette er note1';
//var note02 = 'Dette er note2';
//var note03 = 'Dette er note3';

function writetoDiv(noteNr) {
      // funktionen klaldes nu med tal som parameter 0,1,2,...
//  if ( noteNr > 0 ) writetoDiv( 0 );  // skal muligvis med
  if (document.getElementById) {
    document.getElementById('reference').innerHTML=note[noteNr];
  }
  else {
    if (document.all) {
      document.all['reference'].innerHTML=note[noteNr];
    }
    else {
      if (document.layers) {
        document.layers['reference'].document.open();
        document.layers['reference'].document.write(note[noteNr]);
        document.layers['reference'].document.close();
      }
    }
  }
}
</script>

dine kald nedet i body bliver nu
      writetoDiv( 0 )    istedet for  writetoDiv( note00 )
      writetoDiv( 1 )    istedet for  writetoDiv( note01 )
      writetoDiv( 2 )    istedet for  writetoDiv( note02 )
...

jeg vil nødig forklare hvorfor før vi har set om det virker :-)

mvh JakobA
Avatar billede mik789 Nybegynder
03. maj 2002 - 08:04 #3
jakoba> øv, det gør overhovedet ingen forskel. jeg har prøvet både med og uden linjen: if ( noteNr > 0 ) writetoDiv( 0 ); og jeg har fulgt dit script præcist. NS6 opfører sig nøjagtigt som hidtil: kan KUN skifte fra note 1 til note 2 (ikke omvendt), kan kun skifte hvis note div'en tømmes hver gang, kan ikke starte med note 2 (alt dette kører uproblematisk i IE).
Avatar billede mik789 Nybegynder
03. maj 2002 - 08:10 #4
hej, hvis jeg starter med at se note 2 kan jeg godt skifte derfra til note 1 (men kun efter at tømme div'en), men derefter går det som hidtil (ikke godt)
Avatar billede mik789 Nybegynder
05. maj 2002 - 23:55 #5
jeg lukker dette spørgsmål og spørger på en anden måde
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