Avatar billede shaba Nybegynder
17. januar 2000 - 18:57 Der er 15 kommentarer og
1 løsning

Tilsvarende funktion i NS til innerHTML?

Hejsa.

Jeg står og skal bruge et script til at opdatere/ændre indholdet i et div-felt eller lignende. Feltet som skal opdateres ligger i en anden frame end linket som skal gøre det.
Jeg har prøvet et script på adressen: http://www.dansteinman.com/dynduo/en/writing.html
men det kan jeg ikke få til at virke igennem en frame, kun IE delen...

Er der nogen der sidder inde med et script som kan gøre det jeg ønsker, eller nogen som kan rette det ovenstående script til, så vil jeg blive utrolig glad.

På forhånd mange tusind tak.

Mvh.
/Peter
Avatar billede skjoldby Nybegynder
17. januar 2000 - 19:27 #1
Her er lidt javascript du kan sikkert bruge.

nn = (document.layers)? true:false;
ie = (document.all)? true:false;

StrTxt = "Her er min tekst";

if (ie) {divnavn.innerHTML = StrTxt;}
if (nn) {document.layers['divnavn'].write(StrTxt);}


Hilsen
Skjoldet
Avatar billede shaba Nybegynder
17. januar 2000 - 19:43 #2
Tak, men det virker ikke hvis du har frames (kun i IE). Scriptet står i en anden frame en layer'et...
Avatar billede skjoldby Nybegynder
17. januar 2000 - 19:47 #3
if (nn) {parent.framenavn.layers['divnavn'].write(StrTxt);}

Virker det så?
Avatar billede shaba Nybegynder
17. januar 2000 - 19:52 #4
Nej, stadig ikke. Jeg havde også prøvet tilsvarende selv...
Avatar billede skjoldby Nybegynder
17. januar 2000 - 22:13 #5
Hvis vi kalder den frame du skal skrive i frameWrite og den anden frame for frameSelect så prøv således:
---------------
frameWrite:
---------------

if (nn) {document.layers['divnavn'].write(parent.frameSelect.StrTxt);}

---------------
frameSelect:
---------------
StrTxt = "Her definerer du teksten via en variabel";


Det her er blot en idé, jeg ved squ ikke om det virker.

skjoldet
Avatar billede shaba Nybegynder
17. januar 2000 - 23:09 #6
Det kan sikkert godt komme til at fungere, men så skal scriptet jo aktiveres fra samme frame som layeret er i, og det var ikke meningen...

Men jeg undrer mig bare over, hvorfor at man ikke kan i gennem frames i NS, når man kan i IE... Endnu en grund til at IE burde være den eneste browser... (ups, jeg er ikke ude på at starte en krig med NS folkene :) (jeg siger bare sandheden (duh!))
Avatar billede skjoldby Nybegynder
17. januar 2000 - 23:40 #7
Lad spørgsmålet hænge lidt endnu. De store hajer som jumper, justincase og CyberE har ikke svaret, det kan jo være de kan hjælpe. Prøv evt. maile dem direkte og henvis til spørgsmålet.
Jeg har kigget mig blind på problemet, så jeg er nok ikke til megen hjælp mere.
Avatar billede caledonia Nybegynder
18. januar 2000 - 05:30 #8
function dowrite(obj) {
  obj.open();
  obj.write("ok");
  obj.close();
}
dowrite( self.parent.Frææmenavnet.document.layers["lægnåvnet"].document );

Og ehh... Netscape sucks :o)
Avatar billede shaba Nybegynder
18. januar 2000 - 21:18 #9
Det virker heller ikke...
Jeg venter på nogle af hajerne :)
Avatar billede caledonia Nybegynder
18. januar 2000 - 21:27 #10
Jow det gør.. Jeg bruger det selv! (NS ver. 4.7), eller kan jeg sende dig filerne, så kan du copy, paste det ind.

P.S. Dine (frame) tags SKAL bruge NAME og ikke ID
Avatar billede shaba Nybegynder
18. januar 2000 - 21:31 #11
Hmm.. prøv at maile mig dem...
shabapete@cyberlife.dk
Avatar billede shaba Nybegynder
18. januar 2000 - 23:24 #12
Ok, efter tilpasning af det tilsendte... VIRKER DET :)
Så jeg siger tak. Skriv lige et svar under mit nye oprettede spørgsmål (http://www.eksperten.dk/spm.asp?id=10076)
Avatar billede shaba Nybegynder
19. januar 2000 - 00:01 #13
Hov, skulle lige acceptere også :)
Avatar billede hallum Nybegynder
19. januar 2000 - 22:52 #14
Kunne vi andre få glæde af den komplette løsning her på eksperten ville det jo være super :-)
Avatar billede shaba Nybegynder
20. januar 2000 - 20:49 #15
OK.
I den fil, som skal være target for scriptet (lad os kalde den 'humse'), laves der tag'et:"<layer name="messageNN">". Jeg ved ikke om må bruge både <layer> og <div>, men det gør jeg altså, da det så virker i både IE og NN. Så efter det før skrevne, skriver vi altså:"<div id="messageIE">".
Både <layer> og <div> skal selvfølgelig afsluttes.
Nå, det var så target-filen, nu skal vi så have lavet filen som sender beskeden.
Jeg har lavet følgende crossbrowser:
function write(head,indhold) {
    // First we find out which browser the client i using
    nn = (document.layers)? true:false;
    ie = (document.all)? true:false;

    // If the client is using Internet Explorer then (indicated by the '{') write to it
    if (ie)
    {
        var placeie = parent.frames['humse'].document.all['messageIE']
        placeie.innerHTML="<big><big><strong>" + head + "</strong></big></big><br>" + indhold
        document.body.style.cursor = "default";
    }
    // And if the client is using Netscape Navigator do this...
    else
    {
        self.parent.humse.document.layers.messageNN.document.open();
        self.parent.humse.document.layers.messageNN.document.write("<font face=\"Verdana\" size=\"2\"><small><big><big><strong>" + head + "</strong></big></big><br>" + indhold + "</small>");
        self.parent.humse.document.layers.messageNN.document.close();
    }
}

Se bort fra comments'ne :)

Uhm... så kalder man bare funktionen med f.eks. "href="java script:write('HUND!')">HUND!</a>

ok?
Avatar billede shaba Nybegynder
20. januar 2000 - 20:51 #16
Selvfølgelig skal der stå: "href="java script:write('HUND!','Indhold her...')">HUND!</a>"

(der er to variabler i scriptet :)
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